c语言用结构体编程。某班有5名学生,每名学生的数据包括学号、姓名、了 门课程的成绩。从键盘输入5名学生数据,输出5名同学平均成绩,以及平均分最高的学生的数据 (包括学号、姓名、了门课成绩、平均成绩)
时间: 2024-01-06 16:06:27 浏览: 86
以下是用C语言结构体编程实现的代码:
```c
#include <stdio.h>
#include <string.h>
struct student {
char id[10];
char name[20];
float grade[3];
float average;
};
int main() {
struct student stu[5];
int i, j;
float sum, max = 0;
int max_index;
// 输入学生数据
for (i = 0; i < 5; i++) {
printf("请输入第%d名学生的学号、姓名和3门课程的成绩:\n", i + 1);
scanf("%s %s %f %f %f", stu[i].id, stu[i].name, &stu[i].grade[0], &stu[i].grade[1], &stu[i].grade[2]);
// 计算平均成绩
sum = 0;
for (j = 0; j < 3; j++) {
sum += stu[i].grade[j];
}
stu[i].average = sum / 3;
}
// 计算平均成绩和平均分最高的学生数据
for (i = 0; i < 5; i++) {
sum += stu[i].average;
if (stu[i].average > max) {
max = stu[i].average;
max_index = i;
}
}
float average = sum / 5;
// 输出结果
printf("5名同学的平均成绩为:%.2f\n", average);
printf("平均分最高的学生是:\n");
printf("学号:%s\n", stu[max_index].id);
printf("姓名:%s\n", stu[max_index].name);
printf("成绩:%.2f %.2f %.2f\n", stu[max_index].grade[0], stu[max_index].grade[1], stu[max_index].grade[2]);
printf("平均成绩:%.2f\n", stu[max_index].average);
return 0;
}
```
运行程序,输入5名学生的数据,即可得到输出结果。
阅读全文