用c语言和数组写出按学号查询学生信息(学号、姓名、成绩)的程序
时间: 2024-03-22 18:38:02 浏览: 136
好的,以下是使用 C 语言和数组编写的按学号查询学生信息的程序。
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENT 100
struct student {
char id[10];
char name[20];
int grades[3];
};
int main() {
struct student arr[MAX_STUDENT];
int n;
printf("请输入学生人数(不超过 %d 人):", MAX_STUDENT);
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("请输入第 %d 个学生的学号、姓名、三门课成绩:", i + 1);
scanf("%s%s%d%d%d", arr[i].id, arr[i].name, &arr[i].grades[0], &arr[i].grades[1], &arr[i].grades[2]);
}
char query_id[10];
printf("请输入要查询的学生学号:");
scanf("%s", query_id);
int found = 0;
for (int i = 0; i < n; i++) {
if (strcmp(arr[i].id, query_id) == 0) {
printf("学号:%s\n姓名:%s\n成绩:%d %d %d\n", arr[i].id, arr[i].name, arr[i].grades[0], arr[i].grades[1], arr[i].grades[2]);
found = 1;
break;
}
}
if (!found) printf("未找到该学生!\n");
return 0;
}
```
程序首先定义了一个结构体 `student`,用于存储学生的基本信息。在 `main` 函数中,首先读入学生的总人数 `n`,然后用一个循环读入每个学生的学号、姓名、以及三门课成绩。这里使用了结构体数组 `arr` 来存储所有学生的信息。
接下来,程序读入用户要查询的学生学号 `query_id`,然后用一个循环遍历所有学生信息,查找与 `query_id` 相同的学生信息。如果找到了,则输出该学生的信息,否则输出未找到该学生的提示。
注意,这里使用了字符串比较函数 `strcmp` 来比较学号是否相同,需要包含头文件 `<string.h>` 才能使用该函数。另外,为了方便起见,这里只读入了三门课成绩。如果需要读入更多成绩,可以增加成绩数组的长度。
阅读全文