生成绩管理:有5个学生,每个学生的数据包括学号、班级、姓名、三门课成绩。从键盘输入5个学生数据,要求打印出每个学生三门课的平均成绩,以及每门课程平均分、最高分学生数据(包括学号、班级、姓名、三门课成绩,平均分)
时间: 2023-12-26 22:27:07 浏览: 127
```c
#include <stdio.h>
struct Student {
int id;
int class;
char name[20];
float score[3];
};
int main() {
struct Student students[5];
float avgScore[3] = {0};
float maxAvg = 0;
int maxIndex = 0;
// 输入学生数据
for (int i = 0; i < 5; i++) {
printf("请输入第%d个学生的学号、班级、姓名:", i+1);
scanf("%d %d %s", &students[i].id, &students[i].class, students[i].name);
printf("请输入该学生的三门课成绩:");
scanf("%f %f %f", &students[i].score[0], &students[i].score[1], &students[i].score[2]);
}
// 计算每门课程平均分和每个学生的平均分
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 3; j++) {
avgScore[j] += students[i].score[j];
}
}
for (int j = 0; j < 3; j++) {
avgScore[j] /= 5;
}
// 找出平均分最高的学生
for (int i = 0; i < 5; i++) {
float avg = (students[i].score[0] + students[i].score[1] + students[i].score[2]) / 3;
if (avg > maxAvg) {
maxAvg = avg;
maxIndex = i;
}
}
// 打印每个学生的三门课的平均成绩
for (int i = 0; i < 5; i++) {
printf("%s的三门课平均成绩为:%.2f\n", students[i].name, (students[i].score[0] + students[i].score[1] + students[i].score[2]) / 3);
}
// 打印每门课程平均分
printf("每门课程的平均分为:%.2f, %.2f, %.2f\n", avgScore[0], avgScore[1], avgScore[2]);
// 打印平均分最高的学生数据
printf("平均分最高的学生是:%s,学号:%d,班级:%d,三门课成绩:%.2f, %.2f, %.2f,平均分:%.2f\n", students[maxIndex].name, students[maxIndex].id, students[maxIndex].class, students[maxIndex].score[0], students[maxIndex].score[1], students[maxIndex].score[2], maxAvg);
return 0;
}
```
阅读全文