找出以下函数中代码的错误并修改:void del4 作者删除 char bookpub20; printf请输入你要删除的书籍出版社:; scanfs bookpub; int a=0; for a =0;a=numBooks;a++ if strcmpbooksapub bookpub == 0 do if strcmpbooksapub
修改后的代码如下:
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 ;
}
}
修改的主要内容:
- for循环条件应为a<numBooks,不能包含等于号;
- do-while循环中,while条件应为a<numBooks,不能等于;
- 删除单次删除的printf语句应该放在if语句内部,避免重复输出;
- 删除单次删除的a++应该放在if语句内部,避免多次删除同一本书
原文地址: https://www.cveoy.top/t/topic/hp6E 著作权归作者所有。请勿转载和采集!