用C语言书写正确程序。用结构体编程。某班有5名学生,每名学生的数据包括学号、姓名、3 门课程的成绩。从键盘输入5名学生数据,输出5名同学平均成绩, 以及平均分最高的学生的数据(包括学号、姓名、 3 门课成绩、平均成绩)。
时间: 2024-06-08 19:12:53 浏览: 87
C语言程序设计-输入2个学生3门课的成绩,计算学生成绩平均分,课程平均分和最高分.
5星 · 资源好评率100%
以下是使用结构体编写的C语言程序,能够实现输入5名学生的数据,计算平均成绩并输出,并找出平均分最高的学生的数据(包括学号、姓名、3门课成绩、平均成绩):
```c
#include <stdio.h>
struct student {
int id;
char name[20];
float score[3];
float average;
};
int main() {
struct student stu[5];
float total[3] = {0}, max = 0;
int max_index = 0;
// 从键盘输入5名学生数据
for (int i = 0; i < 5; i++) {
printf("请输入第%d名学生的学号:", i + 1);
scanf("%d", &stu[i].id);
printf("请输入第%d名学生的姓名:", i + 1);
scanf("%s", stu[i].name);
for (int j = 0; j < 3; j++) {
printf("请输入第%d名学生的第%d门课成绩:", i + 1, j + 1);
scanf("%f", &stu[i].score[j]);
total[j] += stu[i].score[j]; // 计算总分
}
stu[i].average = (total[0] + total[1] + total[2]) / 15; // 计算平均分
}
// 输出5名同学平均成绩
printf("\n5名同学平均成绩为:%.2f %.2f %.2f\n", total[0] / 5, total[1] / 5, total[2] / 5);
// 找出平均分最高的学生的数据(包括学号、姓名、3门课成绩、平均成绩)
for (int i = 0; i < 5; i++) {
if (stu[i].average > max) {
max = stu[i].average;
max_index = i;
}
}
printf("\n平均分最高的学生为:\n");
printf("学号:%d\n", stu[max_index].id);
printf("姓名:%s\n", stu[max_index].name);
printf("3门课成绩:%.2f %.2f %.2f\n", stu[max_index].score[0], stu[max_index].score[1], stu[max_index].score[2]);
printf("平均成绩:%.2f\n", stu[max_index].average);
return 0;
}
```
运行程序后,输入5名学生的数据,程序会输出5名同学平均成绩,以及平均分最高的学生的数据。
阅读全文