C语言编写读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
时间: 2023-06-10 20:08:23 浏览: 200
以下是一个简单的C语言程序实现,通过比较成绩的大小来找到最高和最低成绩的学生姓名和学号:
```c
#include <stdio.h>
#include <string.h>
struct Student {
char name[20];
char id[20];
int score;
};
int main() {
int n;
printf("请输入学生人数: ");
scanf("%d", &n);
struct Student students[n];
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的姓名、学号和成绩: ", i+1);
scanf("%s %s %d", students[i].name, students[i].id, &students[i].score);
}
int max_score = -1, min_score = 101;
int max_index = -1, min_index = -1;
for (int i = 0; i < n; i++) {
if (students[i].score > max_score) {
max_score = students[i].score;
max_index = i;
}
if (students[i].score < min_score) {
min_score = students[i].score;
min_index = i;
}
}
printf("成绩最高的学生是 %s(%s),成绩为 %d 分\n", students[max_index].name, students[max_index].id, max_score);
printf("成绩最低的学生是 %s(%s),成绩为 %d 分\n", students[min_index].name, students[min_index].id, min_score);
return 0;
}
```
该程序首先读入学生人数,然后定义一个结构体数组用来存储每个学生的姓名、学号和成绩。接着通过循环读入每个学生的信息,并找出成绩最高和成绩最低的学生所在的数组下标,最后输出对应的学生信息即可。
阅读全文