#include<stdio.h>#include<stdlib.h>struct Book
{char title[128];char author[40];struct Book *next;};voidget(struct Book *book){printf("请输入书名:\n");scanf("%s",book->title);printf("请输入作者:\n");scanf("%s",book->author);}voidadd(struct Book **library){struct Book *book;staticstruct Book *tail;
book =(struct Book *)malloc(sizeof(struct Book));if( book ==NULL){printf("分配内存不足!\n");exit(0);}get(book);if(*library !=NULL){
tail ->next = book;
book ->next =NULL;}else{*library = book;
book->next =NULL;}
tail = book;}voidprint(struct Book *library){struct Book *book;int count =1;
book = library;while(book !=NULL){printf("Book%d\n",count);printf("书名:%s\n",book->title);printf("作者:%s\n",book->author);
book = book->next;
count++;}}struct Book *search(struct Book *library,char*target){struct Book *book;
book = library;while(book !=NULL){if(!strcmp(book->title,target)||!strcmp(book->author,target)){break;}
book = book->next;}return book;};voidprintBook(struct Book *book){printf("书名:%s\n",book->title);printf("作者:%s\n",book->author);}voidrelease(struct Book **library){struct Book *nsdd;while(*library !=NULL){
nsdd =*library;*library =(*library)->next;free(nsdd);}}int main (void){struct Book *library =NULL;struct Book *book =NULL;char input[128];char ch;while(1){printf("请问是否需要录入书籍信息?(Y\N)");do{
ch =getchar();}while(ch !='Y'&&ch !='N');if(ch =='Y'){add(&library);}else{break;}}printf("是否需要打印图书信息(Y\N)?");do{
ch =getchar();}while(ch !='Y'&&ch !='N');if(ch =='Y'){print(library);}printf("\n请输入书名或作者:\n");scanf("%s",input);
book =search(library,input);if( book ==NULL){printf("lz没找到\n");}else{do{printf("已经找到你tm要的书\n");printBook(book);}while((book =search(book->next,input))!=NULL);}release(&library);return0;}