编写此程序时遇到了一些问题。在列表中搜索时,只能显示第一个结果。即使有其他数据符合要求,程序也不能显示多个结果。在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