有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3门课成绩、平均分数)。请使用C语言实现。
时间: 2023-11-28 07:49:18 浏览: 66
数据结构:定义一个包含学生信息(学号、姓名、成绩)的顺序表_数据结构
5星 · 资源好评率100%
以下是使用C语言实现的代码:
```c
#include <stdio.h>
struct student{
int id;
char name[20];
float score[3];
float avg_score;
};
int main(){
struct student stu[10];
float avg_score[3] = {0};
int max_avg_score_index = 0;
// 从键盘输入10个学生的数据
for(int i = 0; i < 10; i++){
printf("请输入第%d个学生的数据:\n", i+1);
printf("学号:");
scanf("%d", &stu[i].id);
printf("姓名:");
scanf("%s", stu[i].name);
printf("三门课成绩:");
scanf("%f %f %f", &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]);
// 计算平均分
stu[i].avg_score = (stu[i].score[0] + stu[i].score[1] + stu[i].score[2]) / 3;
// 计算每门课的平均分
avg_score[0] += stu[i].score[0] / 10;
avg_score[1] += stu[i].score[1] / 10;
avg_score[2] += stu[i].score[2] / 10;
// 找出平均分最高的学生
if(stu[i].avg_score > stu[max_avg_score_index].avg_score){
max_avg_score_index = i;
}
}
// 打印每门课的平均分
printf("\n三门课的平均分分别为:%.2f %.2f %.2f\n", avg_score[0], avg_score[1], avg_score[2]);
// 打印平均分最高的学生的数据
printf("\n平均分最高的学生的数据为:\n");
printf("学号:%d\n", stu[max_avg_score_index].id);
printf("姓名:%s\n", stu[max_avg_score_index].name);
printf("三门课成绩:%.2f %.2f %.2f\n", stu[max_avg_score_index].score[0], stu[max_avg_score_index].score[1], stu[max_avg_score_index].score[2]);
printf("平均分数:%.2f\n", stu[max_avg_score_index].avg_score);
return 0;
}
```
运行程序,输入10个学生的数据,即可得到每门课的平均分和平均分最高的学生的数据。
阅读全文