用C语言写有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求打印出31 ]课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3门课成绩、平均分数)
时间: 2023-12-15 18:10:54 浏览: 197
好的,这是一个比较典型的 C 语言实例题目。我们可以使用结构体来表示学生数据,然后通过循环来输入数据并计算平均成绩。下面是一个示例代码:
```c
#include <stdio.h>
#define N 10 // 学生数
// 学生结构体
struct Student {
int id; // 学号
char name[20]; // 姓名
double score[3]; // 3门课成绩
double avg; // 平均分数
};
int main() {
struct Student stu[N];
int i, j;
double sum, max_avg;
int max_index;
// 输入学生数据
for (i = 0; i < N; i++) {
printf("请输入第%d个学生的数据:\n", i+1);
printf("学号:");
scanf("%d", &stu[i].id);
printf("姓名:");
scanf("%s", stu[i].name);
printf("3门课成绩:");
for (j = 0; j < 3; j++) {
scanf("%lf", &stu[i].score[j]);
}
// 计算平均分数
sum = stu[i].score[0] + stu[i].score[1] + stu[i].score[2];
stu[i].avg = sum / 3.0;
}
// 计算31课的平均成绩
sum = 0;
for (i = 0; i < N; i++) {
sum += stu[i].score[2];
}
printf("31课的平均成绩为:%f\n", sum / N);
// 找出平均分数最高的学生
max_avg = 0;
for (i = 0; i < N; i++) {
if (stu[i].avg > max_avg) {
max_avg = stu[i].avg;
max_index = i;
}
}
printf("平均分数最高的学生为:\n");
printf("学号:%d\n", stu[max_index].id);
printf("姓名:%s\n", stu[max_index].name);
printf("3门课成绩:%f %f %f\n", stu[max_index].score[0], stu[max_index].score[1], stu[max_index].score[2]);
printf("平均分数:%f\n", stu[max_index].avg);
return 0;
}
```
注意,这只是一个简单的示例,实际应用中可能需要进行更多的数据验证和异常处理。
阅读全文