把借出的书存放在一个新数组里C语言
时间: 2024-05-13 12:14:49 浏览: 16
假你有一个存储图书的结构体数组books,其中每个结构体包含书名、作者、ISBN号、借出状态等信息。你需要从这个数组中筛选出已经借出的书,并将它们存放在一个新的结构体数组中。以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 100
typedef struct {
char title[100];
char author[50];
char isbn[20];
int borrowed;
} Book;
int main() {
Book books[MAX_BOOKS];
Book borrowed_books[MAX_BOOKS];
int num_books = 0;
int num_borrowed = 0;
// 假设有一些书已经被添加到了books数组中
// 遍历books数组,将已经被借出的书存放在borrowed_books数组中
for (int i = 0; i < num_books; i++) {
if (books[i].borrowed) {
// 复制结构体
strcpy(borrowed_books[num_borrowed].title, books[i].title);
strcpy(borrowed_books[num_borrowed].author, books[i].author);
strcpy(borrowed_books[num_borrowed].isbn, books[i].isbn);
borrowed_books[num_borrowed].borrowed = books[i].borrowed;
num_borrowed++;
}
}
// 打印borrowed_books数组中的书
for (int i = 0; i < num_borrowed; i++) {
printf("%s by %s (ISBN: %s)\n",
borrowed_books[i].title,
borrowed_books[i].author,
borrowed_books[i].isbn);
}
return 0;
}
```
在上面的代码中,我们首先定义了一个结构体数组books,其中每个结构体包含书名、作者、ISBN号、借出状态等信息。然后我们定义了一个新的结构体数组borrowed_books,用于存放已经被借出的书。我们使用一个循环遍历books数组,对于每个已经被借出的书,我们将它的信息复制到borrowed_books数组中,并递增num_borrowed变量。最后,我们再次遍历borrowed_books数组,并打印出每本书的信息。