c语言代码:#include <stdio.h> #include <string.h> typedef struct book{ int id; // 书号 char name[30]; // 书名 char author[30]; //作者 float price; //价格 }BOOK; int main(){ /* 声明函数 */ void input(struct book *p, int num); void output(struct book *p, int num); struct book * findBookByID(struct book *p, int num, int id); struct book * findBookByName(struct book *p, int num, char name[]); /* 声明变量 */ const int NUM = 3; struct book myBooks[NUM]; struct book *pBook = myBooks; BOOK *theBook; /* 为myBooks数组的所有元素赋值 */ input(pBook, NUM); /* 按ID检索图书 */ int bookID; scanf("%d", &bookID); fflush(stdin); /*清空输入缓冲区*/ theBook = findBookByID(pBook, NUM, bookID); /*按书号检索*/ output(theBook, 1); /*输出检索结果*/ /* 输出myBooks数组的所有元素值 */ output(pBook, NUM); return 0;* * 函数名称:findBookByID * 函数功能:按书号检索图书 * 形式参数:p,book型指针,book型一维数组首地址 * 形式参数:num,int型,图书数量 * 形式参数:id,int型,书号 * 返 回 值:返回book型指针。若没有找到图书,则返回空指针NULL;否则,仅返回第1本符合检索条件的图书 */ struct book * findBookByID(struct book *p, int num, int id){ // 请编程实现本函数
时间: 2024-02-04 20:02:21 浏览: 79
c# 图书检索
首先我们需要遍历整个书的数组,查找是否有书号与要查找的书号相同的书。如果找到了符合要求的书,就返回该书的指针;否则返回空指针NULL。
具体实现:
```
struct book *findBookByID(struct book *p, int num, int id){
for(int i = 0; i < num; i++){
if(p[i].id == id){
return &p[i];
}
}
return NULL;
}
```
阅读全文