修改后的代码如下:

void del4() //作者删除 { char bookpub[20]; printf("请输入你要删除的书籍出版社:"); scanf("%s", bookpub); int a=0; for (a =0;a<numBooks;a++) //修改条件为a<numBooks if (strcmp(books[a].pub, bookpub) == 0) { do {
if (strcmp(books[a].pub, bookpub) == 0) { for (int j = a; j < numBooks - 1; j++) { books[j] = books[j + 1]; } numBooks--; update2(); printf("删除成功!\n");//单次删除 } a++; } while (a<numBooks); //修改条件为a<numBooks return ; } }

修改的主要内容:

  1. for循环条件应为a<numBooks,不能包含等于号;
  2. do-while循环中,while条件应为a<numBooks,不能等于;
  3. 删除单次删除的printf语句应该放在if语句内部,避免重复输出;
  4. 删除单次删除的a++应该放在if语句内部,避免多次删除同一本书
找出以下函数中代码的错误并修改:void del4 作者删除 char bookpub20; printf请输入你要删除的书籍出版社:; scanfs bookpub; int a=0; for a =0;a=numBooks;a++ if strcmpbooksapub bookpub == 0 	 do if strcmpbooksapub

原文地址: https://www.cveoy.top/t/topic/hp6E 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录