このプログラムを書いているとき、いくつかの問題がありました。リストの検索中は、最初の結果のみを表示できます。要件に一致する他のデータがある場合でも、プログラムは複数の結果を表示できません。
2 つ目の問題は、ユーザーが名前で検索しようとすると、実行時エラーが発生することです。
助けてくれてありがとう。
コードは次のとおりです。
int namesearch(LIST *list,STUDENT **pPre,STUDENT **pLoc,char target[]){
int n;
*pLoc = list->head;
for (;*pLoc!=NULL && n!=0;){
n=strncmp(target,(*pLoc)->name,MAXNUM);
*pPre = *pLoc;
*pLoc = (*pLoc)->next;
printf("1");
}
if(*pPre==NULL)
return 0;
else{
printf("2");
if (n==0){
printf("%s%d | %-18s| %0.1f | %0.1f",RESULT,(*pLoc)->sid,(*pLoc)->name,(*pLoc)->ca,(*pLoc)->exam);
return 1;
fflush(stdin);getch();
}
else
printf("3");
return 0;
}
}