c语言实现有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3门课成绩、平均分数)。
时间: 2023-12-15 16:22:28 浏览: 72
下面是一份C语言代码实现该功能:
```
#include <stdio.h>
#include <string.h>
struct student {
int id;
char name[20];
float score1;
float score2;
float score3;
float avg_score;
};
int main() {
struct student students[10];
float avg_score1 = 0, avg_score2 = 0, avg_score3 = 0;
float highest_avg_score = 0;
struct student highest_avg_student;
// 输入学生数据
for (int i = 0; i < 10; i++) {
printf("请输入第%d个学生的数据:\n", i+1);
printf("学号:");
scanf("%d", &students[i].id);
printf("姓名:");
scanf("%s", students[i].name);
printf("成绩1:");
scanf("%f", &students[i].score1);
printf("成绩2:");
scanf("%f", &students[i].score2);
printf("成绩3:");
scanf("%f", &students[i].score3);
// 计算平均成绩
students[i].avg_score = (students[i].score1 + students[i].score2 + students[i].score3) / 3;
// 统计总成绩
avg_score1 += students[i].score1;
avg_score2 += students[i].score2;
avg_score3 += students[i].score3;
// 记录平均成绩最高的学生
if (students[i].avg_score > highest_avg_score) {
highest_avg_score = students[i].avg_score;
highest_avg_student = students[i];
}
}
// 计算总平均成绩
avg_score1 /= 10;
avg_score2 /= 10;
avg_score3 /= 10;
// 输出结果
printf("\n三门课的平均成绩为:\n");
printf("成绩1:%.2f\n", avg_score1);
printf("成绩2:%.2f\n", avg_score2);
printf("成绩3:%.2f\n", avg_score3);
printf("\n平均成绩最高的学生为:\n");
printf("学号:%d\n", highest_avg_student.id);
printf("姓名:%s\n", highest_avg_student.name);
printf("成绩1:%.2f\n", highest_avg_student.score1);
printf("成绩2:%.2f\n", highest_avg_student.score2);
printf("成绩3:%.2f\n", highest_avg_student.score3);
printf("平均分数:%.2f\n", highest_avg_student.avg_score);
return 0;
}
```
该程序使用了结构体来存储每个学生的数据,通过循环输入学生数据,并计算平均成绩、总成绩等统计数据。最后输出三门课的平均成绩,以及平均成绩最高的学生的数据。
阅读全文