有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>
#define MAX 1000001
struct Student{
int id;
char Name[20];
int class1,class2,class3;
}student[MAX];
int main()
{
int N,i;
scanf("%d",&N);
for(i=0;i<N;i++)
{
scanf("%d%s%d%d%d",&student[i].id,&student[i].Name,&student[i].class1,&student[i].class2,&student[i].class3);
}
double ave1,ave2,ave3;
int sum1=0,sum2=0,sum3=0;
for(i=0;i<N;i++)
{
sum1+=student[i].class1;
sum2+=student[i].class2;
sum3+=student[i].class3;
}
ave1=1.0*sum1/N;
ave2=1.0*sum2/N;
ave3=1.0*sum3/N;
printf("%lf %lf %lf\n",ave1,ave2,ave3);
int grade[N];
for(i=0;i<N;i++)
{
grade[i]=student[i].class1+student[i].class2+student[i].class3;
}
int max=grade[0],num=0;
for(i=1;i<N;i++)
{
if(max<grade[i])
{
max=grade[i];
num=i;
}
}
printf("%d %s %d %d %d",student[num].id,student[num].Name,student[num].class1,student[num].class2,student[num].class3);
return 0;
}
为啥计算各科平均分貌似只统计了第一个学生的各科成绩