#include "stdio.h"
const int n = 30;
struct stu
{
int num;
char name[8];
float gra[5];
}student[n];
void main()
{
//float a,b;
int c;
int i;
int j;
float sum;
float avg;
float avgs[5]={0,0,0,0,0};
printf("请输入每个学生的名字,学号,及5门课的成绩\n");
for(j=0;j<n;j++)
{
scanf("%s%d%f%f%f%f%f\n",student[j].name,&student[j].num,&student[j].gra[0],&student[j].gra[1],&student[j].gra[2],&student[j].gra[3],&student[j].gra[4]);
avgs[0]=avgs[0]+student[j].gra[0];
avgs[1]=avgs[1]+student[j].gra[1];
avgs[2]=avgs[2]+student[j].gra[2];
avgs[3]=avgs[3]+student[j].gra[3];
avgs[4]=avgs[4]+student[j].gra[4];
}//为什么输入完之后还的输入一个字符才可以继续执行呢???
printf("请输入要查询的学生情况的关键字\n");
scanf("%d",&c);
for(j=0;j<n;j++)
{
if(c==student[j].num)
printf("姓名:%s,学号:%d,5门成绩分别为:%.2f分,%.2f分%.2f分,%.2f分,%.2f分\n",student[j].name,student[j].num,student[j].gra[0],student[j].gra[1],student[j].gra[2],student[j].gra[3],student[j].gra[4]);
}
for(j=0;j<n;j++)
{
sum=student[j].gra[0]+student[j].gra[1]+student[j].gra[2]+student[j].gra[3]+student[j].gra[4];
avg=sum/5;
printf("第%d学生的总成绩:=%.2f分,平均成绩avg=%.2f分\n",j+1,sum,avg);
}
for(i=0;i<5;i++)
{
float max=student[0].gra[i];
float min=student[0].gra[i];
for(j=1;j<n;j++)
{
if(max<student[j].gra[i])
{
max=student[j].gra[i];
}
if(min>student[j].gra[i])
{
min=student[j].gra[i];
}
/*if(student[j].gra[i]>student[j+1].gra[i])
{
a=student[j].gra[i];//好象不对的
b=student[j+1].gra[i];
j++;
}
else
{a=student[j+1].gra[i];
b=student[j].gra[i];
j++;
}
if(j==n)
{
break;
}*/
}
//printf("第%d门成绩的最高得分为 %.2f,最低得分为 %.2f,总分为%.2f\n",i+1,a,b,avgs[i]);
printf("第%d门成绩的最高得分为 %.2f,最低得分为 %.2f,总分为%.2f\n",i+1,max,min,avgs[i]);
}
for(j=0;j<n;j++)
{
if(c==student[j].num)
{
printf("name=%s,num=%d,gra=%.2f,%.2f,%.2f,%.2f,%.2f\n",student[j].name,student[j].num,student[j].gra[0],student[j].gra[1],student[j].gra[2],student[j].gra[3],student[j].gra[4]);
}
}
}