题目描述
有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)
输入
学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。
输出
各门课的平均成绩最高分的学生的数据(包括学号、姓名、3门课成绩)
样例输入
2
1 blue 90 80 70
b clan 80 70 60
样例输出
85 75 65
1 blue 90 80 70
参考代码
#include<stdio.h>
int main()
{
struct student
{
char no[10];
char name[10];
float score1;
float score2;
float score3;
}
stu[100];
int i,n,maxi=0;
float aver1,max=0,aver2,aver3,sum[100]={0} ,sum1=0,sum2=0,sum3=0;
scanf("%d",&n);
for (i=0;i<n;i++)
{
scanf("%s%s%f%f%f",stu[i].no,stu[i].name,&stu[i].score1,&stu[i].score2,&stu[i].score3);
}
for (i=0;i<n;i++)
{
//sum[i]=0;
sum[i]=stu[i].score1+stu[i].score2+stu[i].score3;
if(sum[i]>max)
{
max=sum[i];
maxi=i;
}
sum1+=stu[i].score1;
sum2+= stu[i].score2;
sum3+=stu[i].score3;
}
aver1=(float)sum1/n;
aver2=(float)sum2/n;
aver3=(float)sum3/n;
printf("%.0f %.0f %.0fn",aver1,aver2,aver3);
printf("%s %s %.0f %.0f %.0fn",stu[maxi].no,stu[maxi].name,stu[maxi].score1,stu[maxi].score2,stu[maxi].score3);
return 0;
}
解析
暂无