现有3本图书,每本图书的信息包括:书号、书名、作者、价格。(1)编写input函数,实现从键盘输入若干本图书信息,存放在结构体数组中。(2)编写output函数,遍历结构体数组,输出所有图书信息。(3)编写findBookByID函数,实现按书号检索图书。(4)编写findBookByName函数,实现按书名检索图书。目前,已编写完成main函数、input函数和findBookByName函数,请编程实现output函数和findBookByID函数。程序结构及具体要求如下。【输入形式】共4行输入。(1)第1行~第 3行分别输入为第1本~第3本图书信息;对每本图书,在一行内分别输入书号、书名、作者、价格,各数据之间以空格分隔;书名和作者不能包含空格。(2)第4行输入需进行检索的图书书号(ID) 【输出形式】共4行输出。(1)第1行输出为按书号检索的结果。若没有图书,则输出字串NULL;若找到图书,则在一行内先后输出书号、书名、作者、价格(保留小数点后两位),用逗号分隔。(2)第2行~第4行分别为所有图书信息,每行输出一本图书信息,输出格式同上。
时间: 2023-11-22 14:54:53 浏览: 116
```python
#include <stdio.h>
#include <string.h>
struct Book {
char id[20];
char name[50];
char author[50];
float price;
};
void input(struct Book books[], int n) {
for (int i = 0; i < n; i++) {
scanf("%s %s %s %f", books[i].id, books[i].name, books[i].author, &books[i].price);
}
}
void output(struct Book books[], int n) {
for (int i = 0; i < n; i++) {
printf("%s,%s,%s,%.2f\n", books[i].id, books[i].name, books[i].author, books[i].price);
}
}
void findBookByID(struct Book books[], int n, char id[]) {
int found = 0;
for (int i = 0; i < n; i++) {
if (strcmp(books[i].id, id) == 0) {
printf("%s,%s,%s,%.2f\n", books[i].id, books[i].name, books[i].author, books[i].price);
found = 1;
break;
}
}
if (!found) {
printf("NULL\n");
}
}
void findBookByName(struct Book books[], int n, char name[]) {
for (int i = 0; i < n; i++) {
if (strcmp(books[i].name, name) == 0) {
printf("%s,%s,%s,%.2f\n", books[i].id, books[i].name, books[i].author, books[i].price);
}
}
}
int main() {
struct Book books[3];
input(books, 3);
char id[20];
scanf("%s", id);
printf("按书号检索的结果:\n");
findBookByID(books, 3, id);
printf("所有图书信息:\n");
output(books, 3);
return 0;
}
```
阅读全文