#include<stdio.h>
#define N 3
struct Student
{
int num;
char name[20];
float score[3];
float aver;
}stu[3];
void aver(struct Student stu[]);
int main()
{
void input( struct Student stu[]);
struct Student max (struct Student stu[]);
void print(struct Student stu);
struct Student *p=stu;
input(p);
print(max(p));
aver(stu);
return 0;
}
void input (struct Student stu[])
{
int i;
printf("请输出各学生的信息:学号、姓名、三门课成绩:\n");
for (i=0;i<N;i++)
{
scanf("%d%s%f%f%f",&stu[i].num,&stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;
}
}
struct Student max(struct Student stu[])
{ int i,m=0;
for(i=0;i<N;i++)
if(stu[i].aver>stu[m].aver)
m=i;
return stu[m];
}
void print(struct Student stud)
{ printf("\n成绩最高的学生是:\n");
printf("学号:%d\n姓名:%s\n三门课成绩:%5.1f,%5.1f,%5.1f\平均成绩:%6.2f\n",stud.num,stud.name,stud.score[0],stud.score[1],stud.score[2],stud.aver);
}
void aver(struct Student stu[])
{
float sum1,sum2,sum3;
int i;
for(i=0;i<3;i++)
{
sum1+=stu[i].score[0];
}
for(i=0;i<3;i++)
{
sum2+=stu[i].score[1];
}
for(i=0;i<3;i++)
{
sum3+=stu[i].score[2];
}
printf("第一门成绩的平均成绩%5.1f\n第二门成绩的平均成绩%5.1f\n第三门成绩的平均成绩%5.1d\n",sum1/3,sum2/3,sum3/3);
}
请输出各学生的信息:学号、姓名、三门课成绩:
010 于港岩 100
020 于港岩2 90
成绩最高的学生是:
学号:10
姓名:于港岩
三门课成绩:100.0, 20.0, 0.0平均成绩: 40.00
第一门成绩的平均成绩 33.3
第二门成绩的平均成绩 6.7
第三门成绩的平均成绩 0
--------------------------------
Process exited after 20.27 seconds with return value 0
请按任意键继续. . .