);Р p=p->link;Р?}Р?if(fgetc(fp)==EOF){Р printf("无不及格学生\n");Р return;Р?} Р?if(fclose(fp)){Р printf("文件无法关闭");Р return;Р?}Р?gradelist file4=fileRead("F:/4.txt");Р?filePrintf(file4);Р}Р Р//对文件中的内容排序Рvoid gradeSort(int choice2)Р{Р?int n=0,i,j;Р?gradelist file3=fileRead("F:/3.txt");Р?Student *p=file3->link;Р?while(p->link!=NULL){Р n++;Р p=p->link;Р?}Р struct Person{ //用线性表保存链表中的内容Р int totalgrade; Р char name[10];Р int number;Р int chinese;Р int math;Р int english;Р };Р Person temp;Р struct SeqList{Р int MAXNUM;Р int n;Р Person *s;Р };Р typedef struct SeqList *PSeqList;Р PSeqList palist=(PSeqList)malloc(sizeof(struct SeqList));Р if(palist!=NULL){Р palist->s=(Person *)malloc(sizeof(Person)*100);Р if(palist->s){Р palist->MAXNUM=100;Р palist->n=0;Р }Р }Р p=file3->link;Р for(i=0;i<n;i++,p=p->link){