编写c程序有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩。入10个学生的数据,要求输出3门课程的总平均成绩,以及最高分的学生的学号、姓果程成绩、平均分数。
时间: 2023-12-15 09:28:08 浏览: 44
```
#include <stdio.h>
#include <string.h>
#define N 10 // 学生数量
#define M 3 // 课程数量
struct Student {
int id; // 学号
char name[20]; // 姓名
int scores[M]; // 3门课程的成绩
};
int main() {
struct Student students[N];
int total_scores[M] = {0}; // 3门课程的总成绩
int max_score = 0; // 最高分
int max_index = 0; // 最高分学生的下标
// 输入学生数据
for (int i = 0; i < N; i++) {
printf("请输入第%d个学生的学号、姓名、3门课程的成绩:\n", i+1);
scanf("%d %s %d %d %d", &students[i].id, students[i].name, &students[i].scores[0], &students[i].scores[1], &students[i].scores[2]);
// 计算总成绩
for (int j = 0; j < M; j++) {
total_scores[j] += students[i].scores[j];
}
// 找出最高分
int total_score = students[i].scores[0] + students[i].scores[1] + students[i].scores[2];
if (total_score > max_score) {
max_score = total_score;
max_index = i;
}
}
// 计算平均成绩
double avg_scores[M];
for (int i = 0; i < M; i++) {
avg_scores[i] = total_scores[i] * 1.0 / N;
}
// 输出总平均成绩
printf("3门课程的总平均成绩为:%.2lf %.2lf %.2lf\n", avg_scores[0], avg_scores[1], avg_scores[2]);
// 输出最高分学生的信息
printf("最高分学生的信息为:\n");
printf("学号:%d\n", students[max_index].id);
printf("姓名:%s\n", students[max_index].name);
printf("成绩:%d %d %d\n", students[max_index].scores[0], students[max_index].scores[1], students[max_index].scores[2]);
printf("平均分数:%.2lf\n", (students[max_index].scores[0] + students[max_index].scores[1] + students[max_index].scores[2]) / 3.0);
return 0;
}
```