这段代码为什么在输入书名时会一直显示书名已重复

qq_26760641 2015-12-20 12:48:40
void add()//增加
{
Book * book, * p;
book->bookisbn;
book=(Book * )malloc(sizeof(Book));
book->bookname=(char * )malloc(50);
memset(book->bookname,0x00,50);
book->bookauthor=(char * )malloc(50);
memset(book->bookauthor,0x00,50);
book->booknum=0;
book->next=NULL;
printf("请输入书的编号:");
scanf("%d",&book->bookisbn);
printf("请输入书名:");
scanf("%s",book->bookname);
p=head;
while(p!=NULL)
{
if(p->next!=NULL&&strcmp(p->next->bookname,book->bookname)==0);
{
printf("该书已存在,请重新输入:");
scanf("%s",book->bookname);
p=head;
continue;
}
p=p->next;
}

printf("请输入书的作者:");
scanf("%s",book->bookauthor);
printf("请输入书的数量:");
scanf("%d",&book->booknum);
p=head;
while(p!=NULL)
{
if(p->next==NULL)
{
break;
}
p=p->next;
}
p->next=book;
}
...全文
156 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-12-21
  • 打赏
  • 举报
回复
关于自己是否适合编程的很简单的测试: 在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案: A里面有10处以上文字或标点错误 B里面没有文字或标点错误并敢为此跟人打赌 C里面没有文字或标点错误并且字体和排版完全与原稿一致 D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感 A不适合编程(理由:打字准确度偏低、粗心大意) B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念) C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证) D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!) 如果想从A变成B的话,到我的资源http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习”
pangqibo 2015-12-20
  • 打赏
  • 举报
回复
哈哈 楼上真细心
wang0635 2015-12-20
  • 打赏
  • 举报
回复
if(p->next!=NULL&&strcmp(p->next->bookname,book->bookname)==0); <---有分号!
paschen 2015-12-20
  • 打赏
  • 举报
回复
不知道,都没在你代码里看到有“书名已重复”这几个字,你只上一半代码怎么知道

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧