有一学生成绩表,包括学号、姓名、3门课程成绩。请实现如下查找功能:输入一个学生的姓名,输出该学生学号、姓名、3门课程成绩
输入格式:
首先输入一个整数n(1<=n<=100),表示学生人数;
然后输入n行,每行包含一个学生的信息:学号(12位)、姓名(不含空格且不超过20位),以及3个整数,表示3门课成绩,数据之间用空格隔开。
最后一行输入一个姓名name。
输出格式:
若姓名name存在,输出所有该姓名学生的学号、姓名、3门课程成绩;若该姓名不存在,则输出Not Found
。
输入样例:
在这里给出一组输入。例如:
3
202016010101 Hanmeimei 89 78 95
202016040201 Lilei 85 87 99
202016040202 Hanmeimei 85 68 76
Hanmeimei
输出样例:
在这里给出相应的输出。例如:
202016010101 Hanmeimei 89 78 95
202016040202 Hanmeimei 85 68 76
代码:
#include<stdio.h>
#include<string.h>
struct student
{char xue[16];char name[24];int yu;int shu;int eng;
}stu[104];int main()
{int n;scanf("%d", &n);for (int i = 0; i < n; i++){scanf("%s %s %d %d %d", stu[i].xue, stu[i].name, &stu[i].yu, &stu[i].shu, &stu[i].eng);}char a[24];scanf("%s", a);int flag = 1;int b = 0;int c = 0;for (int i = 0; i < n; i++){if (strcmp(a, stu[i].name) == 0){flag = 0;b = i;}if (flag == 0){printf("%s %s %d %d %d\n", stu[b].xue, stu[b].name, stu[b].yu, stu[b].shu, stu[b].eng);c = 1;//积累思想}flag = 1;}if (c == 0){printf("Not Found");}return 0;
}
当已经输出时,可以再弄一个标志