c语言编码,有10个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入10个学生 的数据 要求打印出三门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、三 门课成绩、平均分数)。
时间: 2023-12-15 08:23:03 浏览: 93
下面是一个简单的 C 语言程序,可以实现上述要求:
```c
#include <stdio.h>
#include <string.h>
struct Student {
char id[20];
char name[20];
float score[3];
float average;
};
int main() {
struct Student students[10];
float avg_score[3] = {0};
float max_avg = 0;
int max_index = 0;
// 输入学生数据
for (int i = 0; i < 10; i++) {
printf("请输入第%d个学生的信息:\n", i + 1);
printf("学号:");
scanf("%s", students[i].id);
printf("姓名:");
scanf("%s", students[i].name);
printf("三门课的成绩:");
scanf("%f%f%f", &students[i].score[0], &students[i].score[1], &students[i].score[2]);
students[i].average = (students[i].score[0] + students[i].score[1] + students[i].score[2]) / 3;
printf("\n");
}
// 计算平均成绩
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 3; j++) {
avg_score[j] += students[i].score[j];
}
}
for (int i = 0; i < 3; i++) {
avg_score[i] /= 10;
printf("第%d门课的平均成绩为:%.2f\n", i + 1, avg_score[i]);
}
// 找出平均分数最高的学生
for (int i = 0; i < 10; i++) {
if (students[i].average > max_avg) {
max_avg = students[i].average;
max_index = i;
}
}
printf("\n平均成绩最高的学生是:%s(%s),平均分数为%.2f,三门课的成绩分别为:%.2f %.2f %.2f\n",
students[max_index].name, students[max_index].id, students[max_index].average,
students[max_index].score[0], students[max_index].score[1], students[max_index].score[2]);
return 0;
}
```
注:以上代码仅供参考,可能存在不足之处。
阅读全文