y;//<->为表示交换的双目运算符,以下同"> y;//<->为表示交换的双目运算符,以下同" />
欢迎来到天天文库
浏览记录
ID:12397283
大小:96.21 KB
页数:104页
时间:2018-07-16
《数据结构习题答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一章绪论1.16voidprint_descending(intx,inty,intz)//按从大到小顺序输出三个数{scanf("%d,%d,%d",&x,&y,&z);if(xy;//<->为表示交换的双目运算符,以下同if(yz;if(xy;//冒泡排序printf("%d%d%d",x,y,z);}//print_descending1.17Statusfib(intk,intm,int&f)//求k阶斐波那契序列的第m项的值f{ inttempd;
2、if(k<2
3、
4、m<0)returnERROR; if(m5、eturnOK;}//fib分析:通过保存已经计算出来的结果,此方法的时间复杂度仅为O(m^2).如果采用递归编程(大多数人都会首先想到递归方法),则时间复杂度将高达O(k^m).1.18typedefstruct{ char*sport; enum{male,female}gender; charschoolname;//校名为'A','B','C','D'或'E' char*resul6、t; intscore; }resulttype;typedefstruct{ intmalescore; intfemalescore; inttotalscore; }scoretype;voidsummary(resulttyperesult[])//求各校的男女总分和团体总分,假设结果已经储存在result[]数组中{ scor7、etypescore; i=0; while(result[i].sport!=NULL) { switch(result[i].schoolname) { case'A': score[0].totalscore+=result[i].score; if(result[i].gender==0)score[0].malescore+=result[i].score; elsescore[0].femalescore+=result[i]8、.score; break; case'B': score.totalscore+=result[i].score; if(result[i].gender==0)score.malescore+=result[i].score; elsescore.femalescore+=result[i].score; break; …… …… …… } i++; } for(i=0;i<5;i++)9、 { printf("School%d:",i); printf("Totalscoreofmale:%d",score[i].malescore); printf("Totalscoreoffemale:%d",score[i].femalescore); printf("Totalscoreofall:%d",score[i].totalscore); }}//summary1.19Statusalgo119(inta[ARRSIZE])//求i!*2^i10、序列的值且不超过maxint{ last=1; for(i=1;i<=ARRSIZE;i++) {a[i-1]=last*2*i; if((a[i-1]/last)!=(2*i))reurnOVERFLOW; last=a[i-1]; returnOK; }}//algo119分析:当某一项的结果超过了maxint时,它除以前面一项的商会发生异常.1.20voidpolyvalue(){ floa
5、eturnOK;}//fib分析:通过保存已经计算出来的结果,此方法的时间复杂度仅为O(m^2).如果采用递归编程(大多数人都会首先想到递归方法),则时间复杂度将高达O(k^m).1.18typedefstruct{ char*sport; enum{male,female}gender; charschoolname;//校名为'A','B','C','D'或'E' char*resul
6、t; intscore; }resulttype;typedefstruct{ intmalescore; intfemalescore; inttotalscore; }scoretype;voidsummary(resulttyperesult[])//求各校的男女总分和团体总分,假设结果已经储存在result[]数组中{ scor
7、etypescore; i=0; while(result[i].sport!=NULL) { switch(result[i].schoolname) { case'A': score[0].totalscore+=result[i].score; if(result[i].gender==0)score[0].malescore+=result[i].score; elsescore[0].femalescore+=result[i]
8、.score; break; case'B': score.totalscore+=result[i].score; if(result[i].gender==0)score.malescore+=result[i].score; elsescore.femalescore+=result[i].score; break; …… …… …… } i++; } for(i=0;i<5;i++)
9、 { printf("School%d:",i); printf("Totalscoreofmale:%d",score[i].malescore); printf("Totalscoreoffemale:%d",score[i].femalescore); printf("Totalscoreofall:%d",score[i].totalscore); }}//summary1.19Statusalgo119(inta[ARRSIZE])//求i!*2^i
10、序列的值且不超过maxint{ last=1; for(i=1;i<=ARRSIZE;i++) {a[i-1]=last*2*i; if((a[i-1]/last)!=(2*i))reurnOVERFLOW; last=a[i-1]; returnOK; }}//algo119分析:当某一项的结果超过了maxint时,它除以前面一项的商会发生异常.1.20voidpolyvalue(){ floa
此文档下载收益归作者所有