C语言一个班上有30名学生,每个学生的数据作为一个记录,每个记录包括学号、姓名、三门课程的成绩和三门课程平均成绩。从键盘输入学生的学号、姓名及三门课的成绩。要求打印三门课程平均成绩最高分的学生记录。程序
时间: 2023-12-23 15:23:54 浏览: 295
根据您的要求,我可以给您提供一个C语言程序的框架,您可以根据需要进行修改和完善:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENT_NUM 30
#define MAX_NAME_LEN 20
struct Student {
int id;
char name[MAX_NAME_LEN];
float score[3];
float avg_score;
};
int main() {
struct Student students[MAX_STUDENT_NUM];
int i, max_index = 0;
float max_avg_score = 0;
// 输入学生信息
for (i = 0; i < MAX_STUDENT_NUM; i++) {
printf("请输入第%d个学生的学号、姓名和三门课程的成绩:\n", i + 1);
scanf("%d %s %f %f %f", &students[i].id, students[i].name, &students[i].score[0], &students[i].score[1], &students[i].score[2]);
students[i].avg_score = (students[i].score[0] + students[i].score[1] + students[i].score[2]) / 3;
if (students[i].avg_score > max_avg_score) {
max_avg_score = students[i].avg_score;
max_index = i;
}
}
// 输出平均成绩最高的学生信息
printf("平均成绩最高的学生是:\n");
printf("学号:%d\n", students[max_index].id);
printf("姓名:%s\n", students[max_index].name);
printf("三门课程的成绩:%f %f %f\n", students[max_index].score[0], students[max_index].score[1], students[max_index].score[2]);
printf("平均成绩:%f\n", students[max_index].avg_score);
return 0;
}
```
阅读全文