#include <stdio.h>
struct student{
char num[10];
char name[8];
int score;
} stu[2];
int main()
{
int i,j,sum;
FILE *fp;
for(i=0;i<2;i++){
printf("\n input score of student %d:\n",i+1);
printf("Num:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
sum=0;
printf("score:");
scanf("%d",&stu[i].score);
}
/*将数据写入文件*/
fp=fopen("E:/fileonly/test.txt","wb");
for (i=0;i<2;i++)
if (fwrite(&stu[i],sizeof(struct student),1,fp)!=1)//将1个大小的student大小的数据写到fp所指的文件中
printf("file write error\n");
fclose(fp);
fp=fopen("E:/fileonly/test.txt","rb");
for (i=0;i<2;i++){
fread(&stu[i],sizeof(struct student),1,fp);//从fp所指的文件读出1个大小的student大小的数据到stu中
//printf("\n%s,%s,%d\n",stu[i].num,stu[i].name,stu[i].score);
}
for (i=0;i<2;i++){
int i,j,index,temp;
for(i=0;i<2;i++){//进行2次换位
index=i;
for(j=i+1;j<3;j++){
if(stu[i].score<stu[index].score) index=j;
}
if(index!=i) {temp=stu[i].score;stu[i].score=stu[index].score;stu[index].score=temp;}
}
}
printf("\n%s,%s,%d\n",stu[1].num,stu[1].name,stu[1].score);
return 0;
}