#include<stdio.h>
#define max 5 /*设定要输入成绩的学生个数*/
double zpj; /*总平均值*/
struct student /*结构体*/
{
int num;
char name[10];
int score1;
int score2;
int score3;
double pj;
};
struct student stu[max],temp;
void Input() /*输入函数*/
{ int i;
for(i=0;i<max;i++)
{printf("enter number");
scanf("%d",&stu[i].num);
printf("enter name");
scanf("%s",&stu[i].name);
printf("enter score1");
scanf("%d",&stu[i].score1);
printf("enter score2");
scanf("%d",&stu[i].score2);
printf("enter score3");
scanf("%d",&stu[i].score3);
}
}
average() /*求平均值函数*/
{int i;
for(i=0;i<5;i++)
{stu[i].pj=stu[i].score1+stu[i].score1+stu[i].score3;
zpj+=stu[i].pj;
}
for(i=0;i<5;i++)
stu[i].pj/=3;
zpj/=max;
}
MAX() /*找出最高平均值的学生的函数*/
{int i,j;
temp=stu[0];
for(i=0;i<max-1;i++)
for(j=i+1;j<max;j++)
if(stu[i].pj<stu[j].pj)
temp=stu[j];
}
output() /*输出函数*/
{int i;
for(i=0;i<max;i++)
printf("num=%d\n name=%s\n score1=%d\n score2=%d\n score3=%d\n aver=%f\n",
stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].pj);
printf("总平均分=%f\n\n",zpj);
printf("平均分最高的学生\nnum=%d\n name=%s\n score1=%d\n score2=%d\n score3=%d\n aver=%f\n",
temp.num,temp.name,temp.score1,temp.score2,temp.score3,temp.pj);
}
void main() /*主函数*/
{
Input();
average();
MAX();
output();
}
自己写的 符合你的要求
不足之处还请指教
温馨提示:答案为网友推荐,仅供参考