查找书籍的C语言代码(结构体)(PTA)
时间: 2024-12-25 15:12:06 浏览: 20
在C语言中,要创建一个用于管理书籍信息的数据结构(如结构体),并实现查找功能,我们可以定义一个名为`Book`的结构体,包含书籍的基本属性,比如书名、作者和ID等。这里提供一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义书籍结构体
typedef struct {
int id;
char title[100];
char author[50];
} Book;
// 函数声明:用于添加书籍和查找书籍
void add_book(Book *books, int size, Book book);
Book* find_book(Book *books, int size, int id);
int main() {
// 初始化书籍数组和大小
const int MAX_BOOKS = 10;
Book books[MAX_BOOKS];
// 添加书籍
Book new_book;
printf("Enter book details (ID, Title, Author): ");
scanf("%d", &new_book.id);
fgets(new_book.title, sizeof(new_book.title), stdin); // 注意处理换行符
fgets(new_book.author, sizeof(new_book.author), stdin);
add_book(&books, MAX_BOOKS, new_book);
// 查找书籍
int search_id;
printf("Search for a book by ID: ");
scanf("%d", &search_id);
Book* found_book = find_book(books, MAX_BOOKS, search_id);
if (found_book) {
printf("Found book:\nTitle: %s\nAuthor: %s\n", found_book->title, found_book->author);
} else {
printf("Book not found.\n");
}
return 0;
}
// 添加书籍到数组
void add_book(Book *books, int size, Book book) {
// 检查数组是否已满
if (size == 0) {
printf("Array is full, cannot add more books.\n");
return;
}
// 将新书插入数组
books[size - 1] = book;
printf("Book added successfully.\n");
}
// 查找书籍函数
Book* find_book(Book *books, int size, int id) {
for (int i = 0; i < size; i++) {
if (books[i].id == id) {
return &books[i]; // 返回指向找到的书的指针
}
}
return NULL; // 如果没有找到,返回NULL
}
```
在这个例子中,我们首先定义了一个`Book`结构体,然后实现了添加书籍和查找书籍的功能。用户可以通过`main`函数进行操作。
阅读全文