#include
#include
struct Student
{ long int num;
char name[20];
int sex;
int college;
float score[10];
double ave;
}Student[100]; //定义结构体数组Student
int main()
{ int i,j,sum=0,k,c[100];
float average[100],t;
FILE*fp;
if((fp=fopen("D:\Student_Info.txt","r"))==NULL) //以只读方式打开文本文件
{ printf("can not open file\n");
exit(0);
}
for(i=0;i<100;i++)
{
fread(&Student[i],sizeof(struct Student),100,fp);
printf("%d%s%d%d%f%f",Student[i].num,Student[i].name,Student[i].sex,Student[i].college,Student[i].score,Student[i].ave);
}
for(i=0;i<100;i++)
{for(j=0;j<10;j++)
{sum=sum+Student[i].score[j];
printf("%d\n",Student[i].score[j]);
printf("%d",sum);
}
average[i]=sum/10;
Student[i].ave=average[i];
}
for(i=0;i<99;i++)
{k=i;
for(j=i;j<100;j++)
{ if(average[j]> average[k])
{k=j;
c[i]=k;
}
t=average[k];average[k]=average[i];average[i]=t;
}
for(i=0;i<100;i++)
{printf("%d%s",Student[c[i]].num,Student[c[i]].name);
for(j=0;j<10;j++)
{ printf("%f",Student[c[i]].score[j]);
}
printf("\n");
}
fclose(fp);
return 0;
}
}