C语言,有10个学生,每个学生的数据包括学号、姓名、3门课的成 绩,从键盘输入10个学生的数据,要求打印出3门课的平均 成绩,以及平均成绩最高的学生的数据(包括学号、姓名、 3门课成绩、平均分数)。
时间: 2023-12-15 21:22:28 浏览: 77
要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3
下面是一个简单的C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
struct Student {
char id[20];
char name[20];
float score[3];
float avg_score;
};
int main() {
struct Student students[10];
float avg_scores[3] = {0};
int max_index = 0;
// 输入学生数据
for (int i = 0; i < 10; i++) {
printf("请输入第%d个学生的学号、姓名和3门课成绩:\n", i+1);
scanf("%s %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;
avg_scores[0] += students[i].score[0];
avg_scores[1] += students[i].score[1];
avg_scores[2] += students[i].score[2];
// 找到平均分数最高的学生
if (students[i].avg_score > students[max_index].avg_score) {
max_index = i;
}
}
// 计算平均成绩
for (int i = 0; i < 3; i++) {
avg_scores[i] /= 10;
}
// 打印平均成绩
printf("三门课的平均成绩为:%.2f %.2f %.2f\n", avg_scores[0], avg_scores[1], avg_scores[2]);
// 打印平均分数最高的学生的数据
printf("平均分数最高的学生为:%s %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], students[max_index].avg_score);
return 0;
}
```
注意输入学生数据时,要用`%s`读取字符串,用`%f`读取浮点数。另外,需要注意数组下标从0开始。
阅读全文