用c语言写如下程序:学生成绩表中,一名学生的信息包含如下信息: 学号(11位)、姓名、数学成绩、英语成绩、程序设计成绩、物理成绩。 本题要求编写程序,录入N条学生的信息,并且按查询要求显示学生成绩等信息,输入在第一行给出正整数N(N<=10);随后N行,每行按格式:学号 姓名 数学成绩 英语成绩 程序设计成绩 物理成绩,给出一名学生的信息。 其中学号是11位数字;姓名是不超过10个字符、不包含空格的非空字符串;成绩是<=100的非负整数; 在学生信息输入完成后,给出要查询的姓名。输出格式:学号 姓名 数学成绩 英语成绩 程序设计成绩 物理成绩。如果有相同姓名的同学,输出全部同学的信息,每名同学一行; 如果要查询的学生不存在,则输出: Not Found!
时间: 2024-02-05 14:11:16 浏览: 69
```
#include <stdio.h>
#include <string.h>
#define MAX_N 10
#define MAX_NAME_LEN 11
struct Student {
char id[MAX_NAME_LEN];
char name[MAX_NAME_LEN];
int math;
int english;
int programming;
int physics;
};
struct Student students[MAX_N];
int main() {
int n, i;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%s %s %d %d %d %d", students[i].id, students[i].name, &students[i].math, &students[i].english, &students[i].programming, &students[i].physics);
}
char query[MAX_NAME_LEN];
scanf("%s", query);
int found = 0;
for (i = 0; i < n; i++) {
if (strcmp(query, students[i].name) == 0) {
printf("%s %s %d %d %d %d\n", students[i].id, students[i].name, students[i].math, students[i].english, students[i].programming, students[i].physics);
found = 1;
}
}
if (!found) {
printf("Not Found!\n");
}
return 0;
}
```
阅读全文