#include
int main()
{ struct stu
{ int id;
char name[11];
int a,b,c;
} t,st[5];
int i,j;
FILE *fp1,*fp2;
if((fp1=fopen("d:\\stud.dat","r"))==NULL)
{ printf("f1 open error!\n");
return 1;
}
if((fp2=fopen("d:\\studsort.dat","w"))==NULL)
{ printf("f2 open error!\n");
return 2;
}
for(i=0; i<5; i++)
fscanf(fp1,"%d%s%d%d%d",&st[i].id,st[i].name,&st[i].a,&st[i].b,&st[i].c);
for(i=0; i<4; i++)
for(j=0; j<4-i; j++)
if(st[j].a+st[j].b+st[j].c { t=st[j]; st[j]=st[j+1]; st[j+1]=t; } for(i=0; i<5; i++) { printf("%d %10s %4d %4d %4d %7.2f\n",st[i].id,st[i].name,st[i].a,st[i].b, st[i].c,(st[i].a+st[i].b+st[i].c)/3.0); fprintf(fp2,"%d %10s %4d %4d %4d %7.2f\n",st[i].id,st[i].name,st[i].a,st[i].b, st[i].c,(st[i].a+st[i].b+st[i].c)/3.0); } fclose(fp1); fclose(fp2); return 0; }