用C语言编写程序,有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3门课成绩、平均分数)。
时间: 2023-12-15 07:10:05 浏览: 65
好的,我会为您解答这个问题。下面是C语言的程序:
```c
#include <stdio.h>
#include <string.h>
struct student {
int id;
char name[20];
float score1;
float score2;
float score3;
float avg_score;
};
int main() {
struct student stu[10];
int i, max_index;
float avg_score1 = 0, avg_score2 = 0, avg_score3 = 0, max_score = 0;
for (i = 0; i < 10; i++) {
printf("请输入第%d个学生的学号、姓名、3门课的成绩:\n", i + 1);
scanf("%d %s %f %f %f", &stu[i].id, stu[i].name, &stu[i].score1, &stu[i].score2, &stu[i].score3);
stu[i].avg_score = (stu[i].score1 + stu[i].score2 + stu[i].score3) / 3;
avg_score1 += stu[i].score1;
avg_score2 += stu[i].score2;
avg_score3 += stu[i].score3;
if (stu[i].avg_score > max_score) {
max_score = stu[i].avg_score;
max_index = i;
}
}
printf("3门课的平均成绩为:%.2f %.2f %.2f\n", avg_score1 / 10, avg_score2 / 10, avg_score3 / 10);
printf("平均成绩最高的学生是:\n");
printf("学号:%d\n", stu[max_index].id);
printf("姓名:%s\n", stu[max_index].name);
printf("3门课的成绩:%.2f %.2f %.2f\n", stu[max_index].score1, stu[max_index].score2, stu[max_index].score3);
printf("平均分数:%.2f\n", stu[max_index].avg_score);
return 0;
}
```
程序的思路是定义一个结构体`student`,其中包含学号、姓名、3门课的成绩和平均成绩。然后定义一个长度为10的结构体数组,用于存储10个学生的数据。接着通过循环从键盘输入每个学生的数据,并且计算出3门课的平均成绩和每个学生的平均成绩。同时,也找出了平均成绩最高的学生。最后将结果打印出来。
阅读全文