用C语言编写一个程序,写出实验报告并运算出结果。有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩。从键盘输入10个学生的数据,要求输出3门课程的总平均成绩,以及最高分的学生的学号、姓名、3门课程成绩、平均分数
时间: 2023-04-08 18:05:29 浏览: 135
C语言程序设计-输入2个学生3门课的成绩,计算学生成绩平均分,课程平均分和最高分.
5星 · 资源好评率100%
这是一个计算问题,我可以回答。以下是一个用C语言编写的程序,可以计算出10个学生的3门课程的总平均成绩,以及最高分的学生的学号、姓名、3门课程成绩、平均分数:
```
#include <stdio.h>
struct Student {
int id;
char name[20];
float score[3];
};
int main() {
struct Student students[10];
float total_score[3] = {0};
float max_score = 0;
int max_index = 0;
// 输入学生数据
for (int i = 0; i < 10; i++) {
printf("请输入第%d个学生的学号、姓名、3门课程的成绩:\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]);
// 计算总成绩
for (int j = 0; j < 3; j++) {
total_score[j] += students[i].score[j];
}
// 记录最高分
float avg_score = (students[i].score[0] + students[i].score[1] + students[i].score[2]) / 3;
if (avg_score > max_score) {
max_score = avg_score;
max_index = i;
}
}
// 计算平均成绩
float avg_total_score[3];
for (int i = 0; i < 3; i++) {
avg_total_score[i] = total_score[i] / 10;
}
// 输出结果
printf("3门课程的总平均成绩为:%.2f %.2f %.2f\n", avg_total_score[0], avg_total_score[1], avg_total_score[2]);
printf("最高分的学生是:%d %s %.2f %.2f %.2f,平均分数为:%.2f\n", students[max_index].id, students[max_index].name, students[max_index].score[0], students[max_index].score[1], students[max_index].score[2], max_score);
return 0;
}
```
阅读全文