用C语言编程:有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3门课成绩、平均分数)。
时间: 2023-12-15 21:24:21 浏览: 97
以下是用C语言编写的代码:
```c
#include <stdio.h>
#include <string.h>
struct Student {
int id;
char name[20];
float score[3];
float avg;
};
int main() {
struct Student students[10];
float avgScore[3] = {0};
float maxAvg = 0;
int maxIndex = 0;
printf("请输入10个学生的数据:\n");
for (int i = 0; i < 10; i++) {
printf("请输入第%d个学生的学号:", i + 1);
scanf("%d", &students[i].id);
printf("请输入第%d个学生的姓名:", i + 1);
scanf("%s", students[i].name);
printf("请输入第%d个学生的3门课成绩:", i + 1);
for (int j = 0; j < 3; j++) {
scanf("%f", &students[i].score[j]);
avgScore[j] += students[i].score[j];
}
students[i].avg = (students[i].score[0] + students[i].score[1] + students[i].score[2]) / 3;
if (students[i].avg > maxAvg) {
maxAvg = students[i].avg;
maxIndex = i;
}
}
printf("3门课的平均成绩为:%.2f, %.2f, %.2f\n", avgScore[0] / 10, avgScore[1] / 10, avgScore[2] / 10);
printf("平均成绩最高的学生数据为:\n");
printf("学号:%d\n", students[maxIndex].id);
printf("姓名:%s\n", students[maxIndex].name);
printf("成绩:%.2f, %.2f, %.2f\n", students[maxIndex].score[0], students[maxIndex].score[1], students[maxIndex].score[2]);
printf("平均分数:%.2f\n", students[maxIndex].avg);
return 0;
}
```
这个程序定义了一个 `Student` 结构体,包含学号、姓名、3门课成绩和平均成绩。在 `main` 函数中,首先定义一个 `students` 数组来存储10个学生的数据,一个 `avgScore` 数组来存储3门课的平均成绩,一个 `maxAvg` 变量来存储最高的平均成绩,一个 `maxIndex` 变量来存储最高平均成绩的学生在数组中的索引。然后通过 `for` 循环从键盘输入10个学生的数据,计算每个学生的平均成绩,并更新 `avgScore` 和 `maxAvg` 变量。最后打印出3门课的平均成绩和平均成绩最高的学生的数据。
阅读全文