1060: 学生结构体2
Description
有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)
Input
学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。
Output
各门课的平均成绩 最高分的学生的数据(包括学号、姓名、3门课成绩)
#include <stdio.h>
#include<stdlib.h>
typedef struct Student
{
char num[10];
char name[20];
int score[3];
float ave;
}STU;
int main()
{
STU stu[10],max;
int i,j,n;
int sum[3]={0,0,0};
/*输入n */
scanf("%d\n",&n);
for(i=0;i<n;i++)
{
scanf("%s %s %d %d %d",stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
sum[0]+=stu[i].score[0];
sum[1]+=stu[i].score[1];
sum[2]+=stu[i].score[2];
/*累加各科学生总成绩*/
stu[i].ave=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
/*求各学生平均成绩*/
}
printf("%d %d %d\n",sum[0]/n,sum[1]/n,sum[2]/n);
max=stu[0];
for(j=1;j<n;j++)
{
if(stu[j].ave>max.ave)
max=stu[j];
}
printf("%s %s %d %d %d\n",max.num,max.name,max.score[0],max.score[1],max.score[2]);
return 0;
}