有五个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入五个学生的数据,要求打印三门课总平均

成绩,以及最高分的学生的数据。。要求:用input函数输入五个学生数据;用一个average函数求总平均分;用max函数找出最高分学生数据;总平均和最高分的学生的数据都在主函数中输出

第1个回答  推荐于2017-09-03
#include "stdio.h"
struct student{
char id[6],name[8];
int score[3];
}stu[5];

void input(student stu[])
{
int i,j;
for(i=0;i<5;++i)
{
printf("Id: "); scanf("%s",&stu[i].id);
printf("Name: "); scanf("%s",&stu[i].name);
for(j=0;j<3;++j)
{
printf("Score[%d]: ",j+1); scanf("%d",&stu[i].score[j]);
}
}
}

void average (student stu[])
{
int i,j,ave,sum;
for(i=0;i<3;++i)
{
sum=0;
for(j=0;j<5;++j)
sum+=stu[j].score[i];
ave=sum/5;
printf("Average%d=%d\n",i+1,ave);
}
}

void max(student stu[])
{
int i,j,max=0,sum,maxi;
for(i=0;i<5;++i)
{
sum=0;
for(j=0;j<3;++j)
sum+=stu[i].score[j];
if (max<sum)
{
max=sum;
maxi=i;
}
}
printf("Max Score:\nid:%s\nname:%s\nscore[1]:%d\nscore[2]:%d\nscore[3]:%d\n",stu[maxi].id,stu[maxi].name,stu[maxi].score[0],stu[maxi].score[1],stu[maxi].score[2]);
}

void main()
{

input(stu);
average(stu);
max(stu);
}本回答被提问者采纳
相似回答