输入N个同学的成绩,查询某个同学的成绩。如果没有找到输 not found!
本题目要求用链表存放每个同学的数据(包括学号、姓名、成绩)。
输入格式:
输入共N+2行,第一行是学生人数N,接下来N行是N个学生的数据,最后一行是一个学号。学号最多有5个字符。
输出格式:
输出只有一行,是一个整数或not found!。
输入样例:
5
s104 zhangshan 95
t321 lisi 88
p005 maliu 79
s109 wangjun 90
t349 lili 67
t321
输出样例:
88
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#pragma warning(disable:4996)
struct student
{
char xuehao[21];
char mingzi[21];
int chengji;
struct student* next;
};
void scan(struct student* p, int N);
void check(struct student* p, int N, char* x);
int main()
{
int N; scanf("%d", &N);
struct student* head = (struct student*)malloc(sizeof(struct student));
head->next = NULL;
scan(head, N);
struct student* p = head;
char x[21] = { '\0' };
scanf("%s", x);
check(head, N, x);
/*输出检验*/
/*for (int i = 0; i < N; i++)
{
printf("%s %s %d\n", p->xuehao, p->mingzi, p->chengji);
p=p->next;
}*/
}
void scan(struct student* p, int N)
{
for (int i = 0; i < N; i++)
{
scanf("%s %s %d", p->xuehao, p->mingzi, &p->chengji);
struct student* pr = (struct student*)malloc(sizeof(struct student));
p->next = pr;
p = pr;
p->next = NULL;
}
}
void check(struct student* p, int N, char* x)
{
for (int i = 0; i < N; i++)
{
if (strcmp(p->xuehao, x) == 0) { printf("%d\n", p->chengji); return; }
p = p->next;
}
/*输出只有一行,是一个整数或not found!*/
printf("not found!\n");
return;
}