- 1、本文档共66页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章
◆1.16② 试写一算法,如果三个整数X,Y和Z的值不是依次非递增的,则通过交换,令其为非递增。
void Descend(int x, int y, int z)
/* 按从大到小顺序返回x,y和z的值 */
{ int t;
if(xy)
{
t=x;
x=y;
y=t;
}
if(xz)
{
t=x;
x=z;
z=t;
}
if(yz)
{
t=y;
y=z;
z=t;}
}
1.17③ 已知k阶裴波那契序列的定义为
f0=0, f1=0, ..., fk-2=0, fk-1=1;
fn=fn-1+fn-2+...+fn-k, n=k,k+1,...
试编写求k阶裴波那契序列的第m项值的函数算法,k和m均以值调用的形式在函数参数表中出现。
要求实现下列函数:
Status Fibonacci(int k, int m, int f)
/* 求k阶斐波那契序列的第m项的值f */
{ int tempd;
int temp[100];
int i,j,sum=0;
if(k2||m0) return ERROR;
if(mk-1) f=0;
else if (m==k-1) f=1;
else
{
for(i=0;i=k-2;i++) temp[i]=0;
temp[k-1]=1;
for(i=k;i=m;i++)
{
for(j=i-1;j=i-k;j--)
sum=sum+temp[j];
temp[i]=sum;
sum=0;
}
f=temp[m];
}
return OK;
}
1.18③ 假设有A、B、C、D、E五个高等院校进行田径对抗赛,
各院校的单项成绩均以存入计算机并构成一张表,表中每一行的形式为项目名称 性别 校名 成绩 得分.编写算法,处理上述表格,以统计各院校的男、女总分和团
体总分,并输出。
void Scores(ResultType *result, ScoreType *score)
/* 求各校的男、女总分和团体总分, 并依次存入数组score */
/* 假设比赛结果已经储存在result[ ]数组中, */
/* 并以特殊记录 {, male, , , 0 }(域scorce=0)*/
/* 表示结束 */
{
int i = 0;
while( result[i].sport )
{
switch( result[i].schoolname )
{
case A:
score[0].totalscore+= result[i].score;
if( result[i].gender == female )
score[0].femalescore+=result[i].score;
else
score[0].malescore+=result[i].score;
break;
case B:
score[1].totalscore += result[i].score;
if( result[i].gender == female )
score[1].femalescore+=result[i].score;
else
score[1].malescore+= result[i].score;
break;
case C:
score[2].totalscore += result[i].score;
if( result[i].gender == female )
score[2].femalescore+=result[i].score;
else
score[2].malescore += result[i].score;
break;
case D:
score[3].totalscore+= result[i].
文档评论(0)