編寫此程序時遇到了一些問題。在列表中搜索時,只能顯示第一個結果。即使有其他數據符合要求,程序也不能顯示多個結果。在C中的單個鏈表中搜索
第二個問題是,當用戶嘗試按名稱搜索時會出現運行時錯誤。
感謝您的幫助。
下面是代碼:
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;
}
}
對於您的第一個問題,爲什麼不停止第一場比賽? – 2013-05-05 13:37:10
(我建議你和同學在一起:http://stackoverflow.com/questions/16384641/looping-through-recursive-list-in-c) – 2013-05-05 13:39:17
嗯..對不起,我不能得到你說的。完整的代碼已發佈,或者它可以幫助您更多地瞭解我正在嘗試做什麼。不管怎麼說,還是要謝謝你。 – user2351825 2013-05-05 14:55:27