使用c语言完成以下:5个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入5个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号,姓名、3门课程成绩、平均分数)。
时间: 2023-12-15 10:23:14 浏览: 30
以下是使用C语言完成上述要求的代码:
```c
#include <stdio.h>
#include <string.h>
// 定义学生结构体
struct student {
char id[10]; // 学号
char name[20]; // 姓名
int scores[3]; // 3门课程成绩
float average; // 平均分数
};
int main() {
struct student stu[5]; // 存储5个学生的数据
float sum[3] = {0}; // 存储3门课程的总成绩
int max_index = 0; // 最高分的学生下标
float max_score = 0; // 最高分数
// 从键盘输入5个学生数据
for (int i = 0; i < 5; i++) {
printf("请输入第%d个学生的学号、姓名和3门课程的成绩:\n", i + 1);
scanf("%s %s %d %d %d", stu[i].id, stu[i].name, &stu[i].scores[0], &stu[i].scores[1], &stu[i].scores[2]);
// 计算平均分数
stu[i].average = (float)(stu[i].scores[0] + stu[i].scores[1] + stu[i].scores[2]) / 3;
// 计算3门课程的总成绩
sum[0] += stu[i].scores[0];
sum[1] += stu[i].scores[1];
sum[2] += stu[i].scores[2];
// 判断是否为最高分数
if (stu[i].average > max_score) {
max_score = stu[i].average;
max_index = i;
}
}
// 计算3门课程的平均成绩
float avg[3] = {sum[0] / 5, sum[1] / 5, sum[2] / 5};
// 输出3门课程总平均成绩
printf("3门课程总平均成绩为:%.2f %.2f %.2f\n", avg[0], avg[1], avg[2]);
// 输出最高分的学生数据
printf("最高分的学生是:%s,学号为:%s,成绩为:%d %d %d,平均分数为:%.2f\n",
stu[max_index].name, stu[max_index].id, stu[max_index].scores[0],
stu[max_index].scores[1], stu[max_index].scores[2], stu[max_index].average);
return 0;
}
```
运行程序后,可以输入5个学生的数据,程序会输出3门课程总平均成绩以及最高分的学生的数据。