"))==NULL)Р?{Р fclose(fp);Р return 0;Р?}Р?fseek(fp,(long)sizeof(STU)*n,0);//将位置指针从文件的开始往后移n个STU结构体的长度,n是提取的位置。Р?if ( (fread(p,sizeof(STU),1,fp)) != 1)Р?{Р printf("文件录入失败,请重试!");Р fclose(fp);Р return 0;Р?}Р?fclose(fp);Р?return 1;Р}Рvoid Max(STU stu[],int m)Р{Р?int i,index;Р?int y[N];Р?STU *p;Р?p=stu;Р?for(i=1;i<=N;i++)//定义一个长度为N的数组,作为下标。Р y[i-1]=i-1;Р?Р?switch(m)Р?{Р case 0:Р {Р for(i=1;i<N;i++)Р if((p+y[0])->score[0]<(p+y[i])->score[0])//让最高分的同学放到第一名的位置上来。Р {Р index=y[0];Р y[0]=y[i];Р y[i]=index;Р }Р p=p+y[0];Р printf("\t第0门最高分为:");Р printf("%d\n",p->score[0]);Р printf("\t得最高分的同学名字是:");Р puts(p->name);Р break;Р }Р case 1:Р {Р for(i=1;i<N;i++)Р if((p+y[0])->score[1]<(p+y[i])->score[1])Р {Р index=y[0];Р y[0]=y[i];Р y[i]=index;Р }Р p=p+y[0];Р printf("\t第1门最高分为:");Р printf("%d\n",p->score[1]);