2.(25分)某项目组每年都会购入一批不同书籍(不超过100本)供学生使用,为便于对书籍进行管理,请编写一段程序。首先从键盘输入新购入书籍的数量,然后分别输入新购书籍的作者名称(作者名称不超过20个字符)和长度为4位的唯一数字编号保存在二维字符数组中。当需要查阅书籍信息时,从键盘输入某一书籍的编号,或从键盘输入书籍的作者名称,则在屏幕上输出匹配该编号或作者名称的书籍信息,信息格式为:书籍的编号*书籍的作者名称;如果未找到匹配的信息,则输出:”No such book found!\n”。 请按如下函数原型编写书籍查找程序: int Search(char author[][N], char code[][N],int n, char find[]); // author[][N]:书籍的作者名称 //code[][N]:书籍的编号 //n:新购入书籍的数量 //find[]:查询关键字(书籍编号或书籍作者名称) //函数返回值:若找到符合要求的书籍,则返回find在author或code数组中的下标位置,若找不到,则返回-1 书籍数量输入格式:“%d” 书籍作者名称和编号输入格式:“%s%s”,注意书籍作者名称和编号输入时用空格分隔 要查找的书籍作者名称或编号的输入格式:“%s” 匹配到的书籍信息输出格式:使用 puts()函数,或者“%s\n” 注意1:购入书籍时,每名作者只购买一本他写的书,即作者名称和书籍的编号都是不同且唯一的; 注意2:不进行输入正确性检查; 注意3:为避免输出信息不一致,请拷贝题目中的输出提示信息到程序中。
时间: 2024-02-03 15:13:37 浏览: 85
购书系统,自己做的看看吧
```c
#include <stdio.h>
#define N 21
#define MAX 100
int Search(char author[][N], char code[][N], int n, char find[]);
int main()
{
char author[MAX][N], code[MAX][N], find[N];
int n, i, idx;
printf("Please input the number of new books: ");
scanf("%d", &n);
for (i = 0; i < n; i++)
{
printf("Please input the author and code of the book %d: ", i + 1);
scanf("%s%s", author[i], code[i]);
}
printf("Please input the author or code you want to search: ");
scanf("%s", find);
idx = Search(author, code, n, find);
if (idx == -1)
printf("No such book found!\n");
else
printf("The book's code is %s and the author is %s.\n", code[idx], author[idx]);
return 0;
}
int Search(char author[][N], char code[][N], int n, char find[])
{
int i;
for (i = 0; i < n; i++)
{
if (strcmp(find, author[i]) == 0 || strcmp(find, code[i]) == 0)
return i;
}
return -1;
}
```
阅读全文