y;//<->为表示交换的双目运算符,以下"> y;//<->为表示交换的双目运算符,以下" />
欢迎来到天天文库
浏览记录
ID:49763722
大小:597.00 KB
页数:70页
时间:2020-03-04
《严蔚敏数据结构习题集答案.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
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;if(k<2
2、
3、m<0)ret
4、urnERROR;if(m5、6、m==k)f=1;else{for(i=0;i<=k-2;i++)temp=0;temp[k-1]=1;temp[k]=1;//初始化sum=1;j=0;for(i=k+1;i<=m;i++,j++)//求出序列第k至第m个元素的值temp=2*sum-temp[j];f=temp[m];}returnOK;}//fib分析:k阶斐波那契序列的第m项的值f[m]=f[m-1]+f[m-2]+......+f[m-k]=f[m-1]+f[m-2]+......7、+f[m-k]+f[m-k-1]-f[m-k-1]=2*f[m-1]-f[m-k-1]所以上述算法的时间复杂度仅为O(m).如果采用递归设计,将达到O(k^m).即使采用暂存中间结果的方法,也将达到O(m^2).1.18typedefstruct{char*sport;enum{male,female}gender;charschoolname;//校名为'A','B','C','D'或'E'char*result;intscore;}resulttype;typedefstruct{intmalescore;intfemales8、core;inttotalscore;}scoretype;voidsummary(resulttyperesult[])//求各校的男女总分和团体总分,假设结果已经储存在result[]数组中{scoretypescore[MAXSIZE];i=0;while(result.sport!=NULL){switch(result.schoolname){case'A':score[0].totalscore+=result.score;if(result.gender==0)score[0].malescore+=result.s9、core;elsescore[0].femalescore+=result.score;break;case'B':score[0].totalscore+=result.score;if(result.gender==0)score[0].malescore+=result.score;elsescore[0].femalescore+=result.score;break;………………}i++;}for(i=0;i<5;i++){printf("School%d:",i);printf("Totalscoreofmale:10、%d",score.malescore);printf("Totalscoreoffemale:%d",score.femalescore);printf("Totalscoreofall:%d",score.totalscore);页脚.}}//summary1.19Statusalgo119(inta[ARRSIZE])//求i!*2^i序列的值且不超过maxint{last=1;for(i=1;i<=ARRSIZE;i++){a[i-1]=last*2*i;if((a[i-1]/last)!=(2*i))re11、urnOVERFLOW;last=a[i-1];returnOK;}}//algo119分析:当某一项的结果超过了maxint时,它除以前面一项的商会发生异常.1.20voidpolyvalue(){floattemp;float*p=a;printf("Inputnumberofterms:");scanf("%d",&n);printf("Inputvalueofx:");scanf("%f",&x);printf("Inputthe%dcoefficientsfroma0toa%d:",n+1,n);p=a;xp=1;s12、um=0;//xp用于存放x的i次方for(i=0;i<=n;i++){scanf("%f",&temp);sum+=xp*(temp);xp*=x;}printf("Valueis:%f",sum);}//polyvalue页脚.第二章线性表2.
5、
6、m==k)f=1;else{for(i=0;i<=k-2;i++)temp=0;temp[k-1]=1;temp[k]=1;//初始化sum=1;j=0;for(i=k+1;i<=m;i++,j++)//求出序列第k至第m个元素的值temp=2*sum-temp[j];f=temp[m];}returnOK;}//fib分析:k阶斐波那契序列的第m项的值f[m]=f[m-1]+f[m-2]+......+f[m-k]=f[m-1]+f[m-2]+......
7、+f[m-k]+f[m-k-1]-f[m-k-1]=2*f[m-1]-f[m-k-1]所以上述算法的时间复杂度仅为O(m).如果采用递归设计,将达到O(k^m).即使采用暂存中间结果的方法,也将达到O(m^2).1.18typedefstruct{char*sport;enum{male,female}gender;charschoolname;//校名为'A','B','C','D'或'E'char*result;intscore;}resulttype;typedefstruct{intmalescore;intfemales
8、core;inttotalscore;}scoretype;voidsummary(resulttyperesult[])//求各校的男女总分和团体总分,假设结果已经储存在result[]数组中{scoretypescore[MAXSIZE];i=0;while(result.sport!=NULL){switch(result.schoolname){case'A':score[0].totalscore+=result.score;if(result.gender==0)score[0].malescore+=result.s
9、core;elsescore[0].femalescore+=result.score;break;case'B':score[0].totalscore+=result.score;if(result.gender==0)score[0].malescore+=result.score;elsescore[0].femalescore+=result.score;break;………………}i++;}for(i=0;i<5;i++){printf("School%d:",i);printf("Totalscoreofmale:
10、%d",score.malescore);printf("Totalscoreoffemale:%d",score.femalescore);printf("Totalscoreofall:%d",score.totalscore);页脚.}}//summary1.19Statusalgo119(inta[ARRSIZE])//求i!*2^i序列的值且不超过maxint{last=1;for(i=1;i<=ARRSIZE;i++){a[i-1]=last*2*i;if((a[i-1]/last)!=(2*i))re
11、urnOVERFLOW;last=a[i-1];returnOK;}}//algo119分析:当某一项的结果超过了maxint时,它除以前面一项的商会发生异常.1.20voidpolyvalue(){floattemp;float*p=a;printf("Inputnumberofterms:");scanf("%d",&n);printf("Inputvalueofx:");scanf("%f",&x);printf("Inputthe%dcoefficientsfroma0toa%d:",n+1,n);p=a;xp=1;s
12、um=0;//xp用于存放x的i次方for(i=0;i<=n;i++){scanf("%f",&temp);sum+=xp*(temp);xp*=x;}printf("Valueis:%f",sum);}//polyvalue页脚.第二章线性表2.
此文档下载收益归作者所有