资源描述:
《c语言答案第章》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第8章[习题8-1]用一个数组存放图书信息,每本书是一个结构,包括下列几项信息:书名、作者、出版年月、借出否,试写出描述这些信息的说明,并编写一个程序,读入若干本书的信息,然后打印出以上信息。/*c8_1.c*/#includestructbook{chartitle[20];charaditor[10];intyear;intmonth;charflag;}liber[10];voidmain(){inti;for(i=0;i<10;i++){rintf("Inputbookt
2、itle:");scanf("%s",liber[i].title);printf("Inputbookaditor:");scanf("%s",liber[i].aditor);printf("Inputprintdate,yearandmonth:");scanf("%d%d",&liber[i].year,&liber[i].month);printf("Inputbookinformation:");scanf("%c",&liber[i].flag);}for(i=0;i
3、<10;i++)printf("%s,%s,%d-%d,%c",liber[i].title,liber[i].aditor,liber[i].year,liber[i].month,liber[i].flag);}[习题8-2]编写一个函数,统计并打印所输入的正文中的各个英文单词出现的次数,并按次数的递减顺序输出。/*c8_2.c*/#include#include#includestructlist{charwords[20];in
4、tnum;structlist*next;};typedefstructlistnode;typedefnode*link;voidcount(char*str)/*统计正文中单词个数*/{linkptr,head,ptrn,headnew;inti=0,j=0,prei=0;chartemp[20];ptr=(link)malloc(sizeof(node));head=ptr;ptr->next=NULL;do{if(*(str+i)==''
5、
6、*(str+i)==' '){/*出现一个单词
7、*/temp[j]=' ';ptr=head;while(ptr->next!=NULL){if(strcmp(ptr->next->words,temp)==0)/*该单词已经出现*/{ptr->next->num++;break;/*结束内层while循环*/}elseptr=ptr->next;}if(ptr->next==NULL)/*该单词是新单词*/{ptr->next=(link)malloc(sizeof(node));strcpy(ptr->next->words,temp);
8、ptr->next->num=1;ptr->next->next=NULL;}if(*(str+i)==' ')break;/*全部正文已经结束,跳出循环*/j=0;i++;continue;}temp[j++]=str[i++];}while(1);ptrn=(link)malloc(sizeof(node));/*新建一个按照顺序排列的链表*/headnew=ptrn;ptrn->next=NULL;ptr=head->next;ptrn=headnew;while(head->next!=
9、NULL)/*把head链表中的结点依次取出按照顺序链接到新的链表headnew中*/{while(ptrn->next!=NULL&&ptrn->next->num>=ptr->num)ptrn=ptrn->next;head->next=ptr->next;ptr->next=ptrn->next;ptrn->next=ptr;ptr=head->next;ptrn=headnew;}ptr=headnew->next;while(ptr!=NULL){/*将排好序的结点输出*/puts(pt
10、r->words);printf("%d",ptr->num);ptr=ptr->next;}}voidmain(){charstr[500];gets(str);count(str);}[习题8-3]编写input()和output()函数,输入输出5个学生记录,每个记录包括num、name、score[3]。/*c8_3.c*/#include#defineN5structstudent{charnum[6];charname[8];intscore[3]