void manager() { int option; Book bookList[MAX_BOOKS]; do { printf("--------------------------------\n"); printf("-----------管理员菜单-----------\n"); printf("-- 1.添加书籍 --\n"); printf("-- 2.查询书籍 --\n"); printf("-- 3.删除书籍 --\n"); printf("-- 0.退出管理 --\n"); printf("--------------------------------\n"); printf("请输入您需要的功能按钮:"); scanf("%d", &option); switch (option) { case 1: addbook(bookList); break; case 2: displaybook(); break; case 3: deletebook(bookList); break; case 0:printf("感谢使用!\n"); break; } printf("是否选择继续?(Y/N)"); scanf(" %c", &option); if (option=='N'||option=='n') { printf("再见!\n"); } }while(option!=3); }怎么改
时间: 2023-09-21 08:08:25 浏览: 77
switch-statement-examples_C-C++_statement_
这段代码中有几个问题:
1. 在添加书籍和删除书籍的函数中,bookList并没有传入函数,导致无法修改bookList数组。
2. 循环条件应该是option不等于0,而不是不等于3。
3. 在询问是否继续的时候,应该使用字符串类型的变量来接收用户输入。
下面是修改后的代码:
```c
void manager(Book bookList[]) {
int option;
do {
printf("--------------------------------\n");
printf("-----------管理员菜单-----------\n");
printf("-- 1.添加书籍 --\n");
printf("-- 2.查询书籍 --\n");
printf("-- 3.删除书籍 --\n");
printf("-- 0.退出管理 --\n");
printf("--------------------------------\n");
printf("请输入您需要的功能按钮:");
scanf("%d", &option);
switch (option) {
case 1:
addbook(bookList);
break;
case 2:
displaybook(bookList);
break;
case 3:
deletebook(bookList);
break;
case 0:
printf("感谢使用!\n");
break;
default:
printf("输入有误,请重新输入!\n");
break;
}
printf("是否选择继续?(Y/N)");
char choice[10];
scanf("%s", choice);
if (strcmp(choice, "N") == 0 || strcmp(choice, "n") == 0) {
printf("再见!\n");
break;
}
} while (option != 0);
}
```
阅读全文