1

このプログラムを書いているとき、いくつかの問題がありました。リストの検索中は、最初の結果のみを表示できます。要件に一致する他のデータがある場合でも、プログラムは複数の結果を表示できません。

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;
    }
}
4

1 に答える 1