#include<stdio.h>
#define MAX 10 //定义学生人数
struct student //定义学生
结构体{
char name[15];
long num[10];
float score[3];
float ave;
}stu[MAX];
main()
{
int i,j,high=0,low=0;
float max,min;
for(i=0;i<MAX;i++) //输入学生数据
{
printf("请输入第%d个学生的姓名:",i+1);
scanf("%s",stu[i].name);
printf("请输入第%d个学生的
学号:",i+1);
scanf("%ld",stu[i].num);
stu[i].ave=0;
for(j=0;j<3;j++)
{
printf("请输入该生第%d门成绩:",j+1);
scanf("%f",&stu[i].score[j]);
stu[i].ave+=stu[i].score[j];
}
stu[i].ave/=3;//求平均成绩
}
max=min=stu[0].ave;
for(i=0;i<MAX;i++)//找平均成绩最大和最小值
{
if(stu[i].ave>=max)
{
max=stu[i].ave;
}
else if(stu[i].ave<=min)
{
min=stu[i].ave;
}
}
for(i=0;i<MAX;i++)//找平均成绩最高和最低的人数
{
if(stu[i].ave==max)
high++;
if(stu[i].ave==min)
low++;
}
//输出数据
printf("\n***********************************************************************\n");
printf("姓名 \t学号 \t成绩1 \t成绩2 \t成绩3\t 平均成绩\n");
for(i=0;i<MAX;i++)
{
printf("%s \t%ld \t%.2f \t%.2f \t%.2f\t %.2f\n",stu[i].name,stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].ave);
}
printf("\n************************************************************************\n");
printf("平均成绩最高的学生人数有%d个,最低的有%d个\n",high,low);
}
我用结构体数组做的,希望会帮到你,呵呵