在借书函数中,打印书单开始借书,借出一本书后,后面的元素会覆盖掉前面的元素,打印出新书单(C语言)
时间: 2024-03-24 14:38:34 浏览: 55
图书借阅系统 C语言(数据结构)
4星 · 用户满意度95%
您好!感谢您的提问。
针对您的问题,我可以给出以下代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 50
void borrowBook(char bookList[][MAX_LEN], int len, char bookName[]) {
int index = -1; // 找到要借的书的下标
for (int i = 0; i < len; i++) {
if (strcmp(bookName, bookList[i]) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("%s不在书单中,无法借阅!\n", bookName);
return;
}
// 借出书籍,后面的元素前移
for (int i = index; i < len - 1; i++) {
strcpy(bookList[i], bookList[i + 1]);
}
// 最后一本书清空
strcpy(bookList[len - 1], "");
printf("借阅%s成功!\n", bookName);
printf("当前书单:\n");
for (int i = 0; i < len - 1; i++) {
printf("%s\n", bookList[i]);
}
}
int main() {
char bookList[][MAX_LEN] = {"C语言程序设计", "Java核心技术", "Python编程从入门到实践", "算法导论", "计算机组成原理"};
int len = sizeof(bookList) / sizeof(bookList[0]);
char bookName[MAX_LEN];
printf("当前书单:\n");
for (int i = 0; i < len; i++) {
printf("%s\n", bookList[i]);
}
printf("请输入要借阅的书籍名称:");
scanf("%s", bookName);
borrowBook(bookList, len, bookName);
return 0;
}
```
注释已经写得比较详细了,大概的思路就是找到要借的书籍在数组中的下标,然后将后面的元素前移一位,最后一本书清空即可。
希望能够帮到您!
阅读全文