大家快来帮我看看 这段程序错哪里了!

来源:百度知道 编辑:UC知道 时间:2024/05/09 13:39:44
void search_book(book *Head,char *book_name)
{
while(Head->next!=NULL)
{
if(strcmp(Head->next->book_name,book_name)==0)
{
printf("书名:%s",Head->next->book_name);
printf("作者:%s",Head->next->book_writer);
printf("分类:");//1.杂志,2.工具书,3.故事书 : ");
printf("出版单位:%s",Head->next->book_chubanshe);
printf("出版时间:%s",Head->next->book_chubanshejian);
printf("价格:%s",Head->next->book_price);
printf("\n\n\n");
}
else
{
printf("dsadada");
Head=Head->next;
}
}

}
当运行到search_book(book *Head,char *book_name);这个函数就会出错!
我是这样调用的
search_book(head,"论语",s);

void search_book(book *Head,char *book_name)
{
while(Head->next!=NULL)
{
if(strcmp(Head->next->book_name,book_name)==0)
{
printf("书名:%s",Head->next->book_name);
printf("作者:%s",Head->next->book_writer);
printf("分类:");//1.杂志,2.工具书,3.故事书 : ");
printf("出版单位:%s",Head->next->book_chubanshe);
printf("出版时间:%s",Head->next->book_chubanshejian);
printf("价格:%s",Head->next->book_price);
printf("\n\n\n");
}
else
{
printf("dsadada");

}
Head=Head->next;
}

}
另:你有没有给链表尾写NULL?

缺少 next;

strcmp(Head->next->book_name,book_name)==0 如果成立会进入死循环,还得加上Head=Head->next; 缺少 next;

不知道你这是什么语言,不过高级语言大概都差不多吧,很明显,search_book(book *Head,char *book_name)两个参数,search_book(head,"论语",s);数数一二三