有3个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入3个学生的数据,要求:
(2.1)打印出每个学生的平均成绩,以及最高分学生的数据(包括学号、姓名、3门课的成绩、平均分数)。
(2.2)有学生姓名录入出错,将学号3003学生出错的姓名Zhao改正为Zhou,并输出改正前和改正后的信息。
验证实例设计:设计如下执行结果的实例,验证所编写代码是否成功:
学号 姓名 数学 语文 物理 平均分
3001 Zhang 82 78 88 82.7
学号 姓名 数学 语文 物理 平均分
3002 Wang 68 46 62 58.7
学号 姓名 数学 语文 物理 平均分
3003 Zhao 92 80 85 85.7
最高分学生成绩如下
学号 姓名 数学 语文 物理
3003 Zhao 92 80 85
#include<stdio.h>
struct stu{
int num;
char *name;
float score[3];
float average;
}a[3];
int main(void){
int i,j;
float sum=0;
char c[]="Zhou";
char b[99];
for(i=0;i<3;i++){
printf("\n请输入学号 姓名 数学 语文 物理成绩\n");
scanf("%d",&a[i].num);
scanf("%s",b);
a[i].name=b;
for(j=0,sum=0;j<3;j++){
scanf("%f",&a[i].score[j]);
sum+=a[i].score[j];
}
a[i].average=sum/3;
printf("学号\t姓名\t数学\t语文\t物理\t平均分\n");
a[2].name=c;
printf("%d\t%s\t%.0f\t%.0f\t%.0f\t%.0f\t",a[i].num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],a[i].average);
}
printf("最高分学生成绩如下:\n");
sum=0;
for(i=0;i<3;i++)
{
sum=a[i].average>a[i+1].average?a[i].average:a[i+1].average;
}
for(i=0;i<3;i++)
if(sum==a[i].average)
break;
printf("学号\t姓名\t数学\t语文\t物理\t平均分\n");
printf("%d\t%s\t%.0f\t%.0f\t%.0f\t%.1f\n",a[i].num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],a[i].average);
}