资源描述:
《2016广工anyview数据结构-第1-5章答案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、/**********【题目】试写一算法,如果三个整数a,b和c的值不是依次非递增的,则通过交换,令其为非递增。***********/voidDescend(int&a,int&b,int&c)/*通过交换,令a>=b>=c*/{if(c<=b&&b<=a)return;else{if(a
2、..+anx^n的值P(x0),并确定算法中每一语句的执行次数和整个算法的时间复杂度。**********/floatPolynomial(intn,inta[],floatx)/*求一元多项式的值P(x)。*//*数组a的元素a[i]为i次项的系数,i=0,...,n*/{floatanswer=a[0];floattemp=1.0;for(inti=1;i<=n;i++){temp*=x;answer+=a[i]*temp;}returnanswer;}/**********【题目】已知k阶裴波那契序列的定义为f(0)=0,f(1)=0,...,f(k-2)=0
3、,f(k-1)=1;f(n)=f(n-1)+f(n-2)+...+f(n-k),n=k,k+1,...试编写求k阶裴波那契序列的第m项值的函数算法,k和m均以值调用的形式在函数参数表中出现。**********/StatusFibonacci(intk,intm,int&f)/*求k阶斐波那契序列的第m项的值f*/{if(k<=1
4、
5、m<0)returnERROR;elseif(m==k-1)f=1;elseif(m==0)f=0;else{inti,j,sum;int*t;t=(int*)malloc(m*sizeof(int));for(i=0;i<=k-2;i
6、++)t[i]=0;t[k-1]=1;for(i=k;i<=m;i++){sum=0;for(j=i-k;j<=i;j++)sum+=t[j];t[i]=sum;}f=t[m];}returnOK;}/**********【题目】试编写算法,计算i!×2^i的值并存入数组a[0..n-1]的第i-1个分量中(i=1,2,…,n)。假设计算机中允许的整数最大值为MAXINT,则当对某个k(1≤k≤n)使k!×2^k>MAXINT时,应按出错处理。注意选择你认为较好的出错处理方法。**********/StatusSeries(inta[],intn)/*求i!*2^i
7、序列的值并依次存入长度为n的数组a;*//*若所有值均不超过MAXINT,则返回OK,否则OVERFLOW*/{intt=1,p=1;for(inti=1;i<=n;i++){t*=i;p*=2;a[i-1]=t*p;if(a[i-1]>MAXINT)returnERROR;}returnOK;}/**********【题目】假设有A、B、C、D、E五个高等院校进行田径对抗赛,各院校的单项成绩均以存入计算机并构成一张表,表中每一行的形式为:项目名称性别校名成绩得分编写算法,处理上述表格,以统计各院校的男、女总分和团体总分,并输出。**********/voidSco
8、res(ResultType*result,ScoreType*score)/*求各校的男、女总分和团体总分,并依次存入数组score*//*假设比赛结果已经储存在result[]数组中,*//*并以特殊记录{"",male,'',"",0}(域scorce=0)*//*表示结束*/{inti=0;while(result[i].sport!=NULL){switch(result[i].schoolname){case'A':score[0].totalscore+=result[i].score;if(result[i].gender==male)score[0
9、].malescore+=result[i].score;elsescore[0].femalescore+=result[i].score;break;case'B':score[1].totalscore+=result[i].score;if(result[i].gender==male)score[1].malescore+=result[i].score;elsescore[1].femalescore+=result[i].score;break;case'C':score[2].totalscore+=result[i].score;if(resu