.有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩以及最高分学生的数据(包括学号、姓名、3门课的成绩、平均分数)。
时间: 2023-12-16 11:28:31 浏览: 146
以下是C语言实现的代码,可以实现输入10个学生的数据,计算3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3门课成绩、平均分数)。
```c
#include <stdio.h>
#include <string.h>
#define N 10
#define M 3
struct Student {
char name[20];
int id;
int score[M];
float avg;
};
int main() {
struct Student students[N];
float avg_scores[M] = {0};
float max_avg = 0;
int max_index = 0;
// 输入学生信息
printf("请依次输入10个学生的信息(姓名 学号 3门课成绩,用空格分隔):\n");
for (int i = 0; i < N; i++) {
scanf("%s %d %d %d %d", students[i].name, &students[i].id, &students[i].score[0], &students[i].score[1], &students[i].score[2]);
// 计算平均分
students[i].avg = (students[i].score[0] + students[i].score[1] + students[i].score[2]) / 3.0;
// 计算总平均分
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 > max_avg) {
max_avg = students[i].avg;
max_index = i;
}
}
// 计算3门课的平均分
for (int i = 0; i < M; i++) {
avg_scores[i] /= N;
}
// 输出3门课的平均分
printf("3门课的平均分分别为: %.2f %.2f %.2f\n", avg_scores[0], avg_scores[1], avg_scores[2]);
// 输出平均分最高的学生信息
printf("平均分最高的学生信息为:\n");
printf("姓名: %s\n", students[max_index].name);
printf("学号: %d\n", students[max_index].id);
printf("3门课成绩: %d %d %d\n", students[max_index].score[0], students[max_index].score[1], students[max_index].score[2]);
printf("平均分数: %.2f\n", students[max_index].avg);
return 0;
}
```
阅读全文