用c语音编写代码有10个学生,每个学生的数据包括学号、姓名以及英语、数学、物理 了门课的成绩,从键掛输人 10个学生数据,要求打印出 3门课的总平均成绩,以及最高分学生的数据(包括学号、姓名、3门课的平均成绩)。
时间: 2023-12-15 21:24:11 浏览: 58
下面是一个简单的C语言程序,通过键盘输入10个学生的数据,计算出每个学生3门课的平均成绩以及3门课的总平均成绩,并找出最高分的学生及其数据信息:
```c
#include <stdio.h>
#include <string.h>
struct student {
char id[10];
char name[20];
float eng, math, phy, avg;
};
int main() {
struct student stu[10];
int i, max = 0;
float sum_eng = 0, sum_math = 0, sum_phy = 0;
printf("请输入10个学生的数据:\n");
for (i = 0; i < 10; i++) {
printf("请输入第%d个学生的学号:",i+1);
scanf("%s",stu[i].id);
printf("请输入第%d个学生的姓名:",i+1);
scanf("%s",stu[i].name);
printf("请输入第%d个学生的英语成绩:",i+1);
scanf("%f",&stu[i].eng);
printf("请输入第%d个学生的数学成绩:",i+1);
scanf("%f",&stu[i].math);
printf("请输入第%d个学生的物理成绩:",i+1);
scanf("%f",&stu[i].phy);
// 计算每个学生的平均成绩
stu[i].avg = (stu[i].eng + stu[i].math + stu[i].phy) / 3;
// 计算所有学生3门课程的总成绩
sum_eng += stu[i].eng;
sum_math += stu[i].math;
sum_phy += stu[i].phy;
// 找出最高分的学生
if (stu[i].avg > stu[max].avg) {
max = i;
}
}
// 计算3门课程的总平均成绩
float avg_eng = sum_eng / 10;
float avg_math = sum_math / 10;
float avg_phy = sum_phy / 10;
// 打印3门课程的总平均成绩
printf("\n英语的平均成绩为:%.2f\n", avg_eng);
printf("数学的平均成绩为:%.2f\n", avg_math);
printf("物理的平均成绩为:%.2f\n", avg_phy);
// 打印最高分学生的数据信息
printf("\n最高分学生的数据信息为:\n");
printf("学号:%s\n", stu[max].id);
printf("姓名:%s\n", stu[max].name);
printf("英语成绩:%.2f\n", stu[max].eng);
printf("数学成绩:%.2f\n", stu[max].math);
printf("物理成绩:%.2f\n", stu[max].phy);
printf("平均成绩:%.2f\n", stu[max].avg);
return 0;
}
```
注意:本程序中没有进行输入数据的验证,对于实际应用,需要对输入数据进行合法性验证。
阅读全文