优化// 归还图书 void returnBook() { char d[10]; printf("请输入要归还的图书编号:"); scanf("%s", d); int i; for(i = 0; i < num; i++) { if(strcmp(book[i].id, d) == 0) { if (book[i].state == 2) { printf("该图书未被借阅,无法归还!\n"); return; } int a = book[i].cl; printf("%d\n", book[i].cl); book[i].cl++; if (book[i].cl == a) { book[i].state = 2; } printf("还书成功!\n"); // 判断该书是否全部归还 int b = 1; for (int j = 0; j < num; j++) { if (strcmp(book[j].id, d) == 0 && book[j].state != 2) { b = 0; break; } } if (b) { book[i].state = 2; printf("该书已全部归还!\n"); } } } printf("未找到该图书!\n"); }
时间: 2024-02-15 13:28:53 浏览: 22
这段代码中有一些可以优化的地方。
首先,变量d可以使用一个更具描述性的名称来代替,例如bookId。
其次,如果书籍编号不存在,程序会遍历整个图书数组,这是不必要的。可以在输入书籍编号后,先遍历一遍数组,检查该编号是否存在,如果不存在,直接输出未找到该图书。
另外,可以使用一个变量来记录找到的书籍的下标,这样就可以避免在后面的代码中多次使用for循环来寻找该书籍了。
最后,可以考虑将判断书籍是否全部归还的部分代码提取出来,以便复用。
下面是优化后的代码:
// 归还图书
void returnBook() {
char bookId[10];
printf("请输入要归还的图书编号:");
scanf("%s", bookId);
int bookIndex = -1;
for(int i = 0; i < num; i++) {
if(strcmp(book[i].id, bookId) == 0) {
bookIndex = i;
break;
}
}
if(bookIndex == -1) {
printf("未找到该图书!\n");
return;
}
if(book[bookIndex].state == 2) {
printf("该图书未被借阅,无法归还!\n");
return;
}
int classTotal = book[bookIndex].cl;
printf("%d\n", classTotal);
book[bookIndex].cl++;
if(book[bookIndex].cl == classTotal) {
book[bookIndex].state = 2;
}
printf("还书成功!\n");
// 判断该书是否全部归还
int allReturned = 1;
for(int i = 0; i < num; i++) {
if(strcmp(book[i].id, bookId) == 0 && book[i].state != 2) {
allReturned = 0;
break;
}
}
if(allReturned) {
book[bookIndex].state = 2;
printf("该书已全部归还!\n");
}
}
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)