#include<stdio.h>#include<string.h>#include<stdlib.h>struct Book
{char title[100];char author[100];struct Book *next;};voidgetInput(struct Book *book){printf("请输入书名,作者\n");scanf("%s %s",book->title,book->author);}voidaddBook(struct Book **library){struct Book *book,*temp;
book=(struct Book*)malloc(sizeof(struct Book));if(book==NULL){printf("内存分配失败!\n");exit(EXIT_FAILURE);}getInput(book);if(*library!=NULL){/*temp=*library;
*library=book;
book->next=temp;
这是头插法
*///尾插法
temp=*library;//定位到链表的尾部位置 while(temp->next!=NULL){
temp=temp->next;}
temp->next=book;
book->next=NULL;}else{*library=book;
book->next=NULL;}}voidprintLirary(struct Book *library){struct Book *book;
book=(struct Book*)malloc(sizeof(struct Book));for(book=library;book!=NULL;book=book->next){printf("书名:%s\n作者:%s\n\n",book->title,book->author);}}voidgetInput(struct Book *book);voidaddBook(struct Book **library);voidprintLibrary(struct Book *lbrary);intmain(){struct Book *library=NULL;while(1){char ch;printf("是否需要输入书籍:Y或者N\n");do{scanf("%c",&ch);}while(ch!='Y'&&ch!='N');if(ch=='Y'){addBook(&library);}else{break;}}printLirary(library);free(library);return0;}