算法设计与分析第三章课后答案吕国英主编.docx

上传人:b****4 文档编号:5946530 上传时间:2023-05-09 格式:DOCX 页数:19 大小:17.95KB
下载 相关 举报
算法设计与分析第三章课后答案吕国英主编.docx_第1页
第1页 / 共19页
算法设计与分析第三章课后答案吕国英主编.docx_第2页
第2页 / 共19页
算法设计与分析第三章课后答案吕国英主编.docx_第3页
第3页 / 共19页
算法设计与分析第三章课后答案吕国英主编.docx_第4页
第4页 / 共19页
算法设计与分析第三章课后答案吕国英主编.docx_第5页
第5页 / 共19页
算法设计与分析第三章课后答案吕国英主编.docx_第6页
第6页 / 共19页
算法设计与分析第三章课后答案吕国英主编.docx_第7页
第7页 / 共19页
算法设计与分析第三章课后答案吕国英主编.docx_第8页
第8页 / 共19页
算法设计与分析第三章课后答案吕国英主编.docx_第9页
第9页 / 共19页
算法设计与分析第三章课后答案吕国英主编.docx_第10页
第10页 / 共19页
算法设计与分析第三章课后答案吕国英主编.docx_第11页
第11页 / 共19页
算法设计与分析第三章课后答案吕国英主编.docx_第12页
第12页 / 共19页
算法设计与分析第三章课后答案吕国英主编.docx_第13页
第13页 / 共19页
算法设计与分析第三章课后答案吕国英主编.docx_第14页
第14页 / 共19页
算法设计与分析第三章课后答案吕国英主编.docx_第15页
第15页 / 共19页
算法设计与分析第三章课后答案吕国英主编.docx_第16页
第16页 / 共19页
算法设计与分析第三章课后答案吕国英主编.docx_第17页
第17页 / 共19页
算法设计与分析第三章课后答案吕国英主编.docx_第18页
第18页 / 共19页
算法设计与分析第三章课后答案吕国英主编.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

算法设计与分析第三章课后答案吕国英主编.docx

《算法设计与分析第三章课后答案吕国英主编.docx》由会员分享,可在线阅读,更多相关《算法设计与分析第三章课后答案吕国英主编.docx(19页珍藏版)》请在冰点文库上搜索。

算法设计与分析第三章课后答案吕国英主编.docx

算法设计与分析第三章课后答案吕国英主编

2、#include

voidmain()

{

inta[6][6],b[6],i,j;

printf("请输入6个整数:

");

for(i=0;i<6;i++)

{

scanf("%d",&b[i]);

}

for(i=0;i<6;i++)

{

a[0][i]=b[i];

}

for(i=1;i<=5;i++)

a[i][0]=b[6-i];

for(i=1;i<=5;i++)

for(j=1;j<=5;j++)

{

a[i][j]=a[i-1][j-1];

}

for(i=0;i<=5;i++)

{

for(j=0;j<=5;j++)

printf("%d",a[i][j]);

printf("\n");

}

}

3、#include

voidmain()

{

inti,j,count,n;

inta[100][100];

printf("请输入矩阵的阶n=");

scanf("%d",&n);

count=1;

for(i=1;i<=n/2;i++)

{

for(j=i;j<=n-i+1;j++)//上侧

{

a[i][j]=count;

count++;

}

for(j=i+1;j<=n-i;j++)//右侧

{

a[j][n-i+1]=count;

count++;

}

for(j=n-i+1;j>=i+1;j--)//下侧

{

a[n-i+1][j]=count;

count++;

}

for(j=n-i+1;j>=i+1;j--)//左侧

{

a[j][i]=count;

count++;

}

}

if(n%2==1)

{

i=(n+1)/2;

a[i][i]=n*n;

}

for(i=1;i<=n;i++)

{

for(j=1;j<=n;j++)

printf("%2d",a[i][j]);

printf("\n");

}

}

4、#include

voidmain()

{

inti,j,n,a[100][100],count=1;

printf("请输入方阵的阶n:

");

scanf("%d",&n);

for(i=1;i<=n;i++)

for(j=1;j<=i;j++)

{

a[i-j+1][j]=count;

count++;

}

for(i=1;i<=n;i++)

{

for(j=1;j<=n-i+1;j++)

printf("%4d",a[i][j]);

printf("\n");

}

}

5、#include

voidmain()

{

inti,j,count,n;

inta[100][100];

printf("请输入矩阵的阶n=");

scanf("%d",&n);

count=1;

for(i=1;i<=n/2;i++)

{

for(j=i;j<=n-i+1;j++)//上侧

{

a[i][j]=count;

}

for(j=i+1;j<=n-i;j++)//右侧

{

a[j][n-i+1]=count;

}

for(j=n-i+1;j>=i+1;j--)//下侧

{

a[n-i+1][j]=count;

}

for(j=n-i+1;j>=i+1;j--)//左侧

{

a[j][i]=count;

}

count++;

}

if(n%2==1)

{

i=(n+1)/2;

a[i][i]=i;

}

for(i=1;i<=n;i++)

{

for(j=1;j<=n;j++)

printf("%2d",a[i][j]);

printf("\n");

}

}

10、狼找兔子问题:

一座山周围有n个洞,顺时针编号为0,1,2.,…,n-1。

一只狼从0号洞开始,顺时针方向计数,每当经过第m个洞时,就进洞找兔子。

输入m,n,问兔子有没有幸免的机会?

如果有,该藏哪里?

#include

voidmain(){

inta[100],b[100],i,n,m,k=0,flag=0;

printf("请输入洞的个数n:

");

scanf("%d",&n);

printf("请输入要经过洞的个数m:

");

scanf("%d",&m);

for(i=0;i

a[i]=0;

b[i]=1;

}

for(i=0;;i=(i+m)%n){

if(a[(i+m)%n]==0)

a[(i+m)%n]=1;

else

if(a[(i+m)%n]==1)

break;

}

for(i=0;i

if(a[i]==0)

k++;

else

if(a[i]==1)

flag++;

}

if(k>0){

printf("\n兔子有幸免的机会,位置为:

\n");

for(i=0;i

if(a[i]==0)

printf("%d",i);

printf("\n");

}

if(flag==n)

printf("兔子没有幸免的机会!

\n");

}

12、有52张牌,使它们全部正面朝上,第一轮是从第2张开始,凡是2的倍数位置上的牌翻成正面朝下;第二轮从第3张牌开始,凡是3的倍数位置上的牌,正面朝上的翻成正面朝下,正面朝下的翻成正面朝上;第三轮从第4张牌开始,凡是4的倍数位置上的牌按上面相同规则翻转,以此类推,知道翻的牌超过104张为止。

统计最后有几张牌正面朝上,以及它们的位置号。

#include

voidmain(){

inta[100],i,sum,k,n=0;

for(i=0;i<100;i++)

a[i]=1;

sum=0;

for(i=2;i<53;i++){

k=1;

while(i*k<53&&sum<=104){

a[i*k]=-a[i*k];

k=k+1;

++sum;

}

}

printf("正面朝上的牌的位置为\n");

for(i=1;i<53;i++)

if(a[i]==1){

n++;

printf("%d",i);

}

printf("\n");

printf("总共%d张牌\n",n);

}

13、A,B,C,D,E5人为某次竞赛的前五名,他们在公布名次前猜名次。

A说:

B得第三名,C得第五名。

B说:

D得第二名,E得第四名。

C说:

B得第一名,E得第四名。

D说:

C得第一名,B得第二名。

A说:

D得第二名,A得第三名。

结果每个人都猜对了一半,实际名次是什么呢?

#include

voidmain(){

inta,b,c,d,e;

for(a=1;a<=5;a++)

for(b=1;b<=5;b++)

if(a!

=b)

for(c=1;c<=5;c++)

if(c!

=a&&c!

=b)

for(d=1;d<=5;d++){

if(d!

=a&&d!

=b&&d!

=c)

e=15-a-b-c-d;

if(e!

=a&&e!

=b&&e!

=c&&e!

=d)

if((b==3)+(c==5)==1&&(d==2)+(e==4)==1&&(b==1)+(e==4)==1&&(c==1)+(b==2)==1&&(d==2)+(a==3)==1)

{

printf("五人的名次分别为:

\n");

printf("A\tB\tC\tD\tE\n");

printf("%d\t%d\t%d\t%d\t%d\n",a,b,c,d,e);

}

}

}

14、#include

voidmain()

{

inti,w1,w2,w3,sql;

for(i=10;i<32;i++)

{

sql=i*i;

w1=sql/100;

w2=sql%100/10;

w3=sql%100%10;

if(w1==w2||w1==w3||w2==w3)

printf("%d*%d=%d\n",i,i,sql);

}

}

15、#include

voidmain()

{

intA,B,C;

for(A=1;A<=3;A++)

for(B=1;B<=3;B++)

{

if(B!

=A)

C=6-A-B;

if(C!

=A&&C!

=B)

if(A!

=1&&C!

=1&&C!

=3)

printf("A<->%d\nB<->%d\nC<->%d\n",A,B,C);

}

printf("1->X2->Y3->Z\n");

}

16、#include

voidmain()

{

intnumber;

printf("请输入一个整数\nnumber=");

scanf("%d",&number);

if(number%4==0)

printf("%d能被4整除\n",number);

if(number%7==0)

printf("%d能被7整除\n",number);

if(number%9==0)

printf("%d能被9整除\n",number);

else

printf("不能被4,7,9任一个整除\n");

}

17、#include

voidmain()

{

inta,b,c,d;

printf("Pleasethinkofanumberbetween1and100\n");

printf("yournumberdividedby3hasaremainderof\n");

printf("PleaseInputa=");

scanf("%d",&a);

printf("yournumberdividedby4hasaremainderof\n");

printf("PleaseInputb=");

scanf("%d",&b);

printf("yournumberdividedby7hasaremainderof\n");

printf("PleaseInputc=");

scanf("%d",&c);

printf("letmethinkamoment...\n");

d=28*a+21*b+36*c;

while(d>84)

d=d-84;

printf("你的数字是%d\n",d);

}

18、#include

voidmain()

{

inta,b,c,d,e,f,g,h,i,sum1,sum2;

for(a=1;a<=9;a++)

for(b=1;b<=9;b++)

if(a!

=b)

for(c=1;c<=9;c++)

if(c!

=a&&c!

=b)

for(d=1;d<=9;d++)

if(d!

=a&&d!

=b&&d!

=c)

for(e=1;e<=9;e++)

if(e!

=a&&e!

=b&&e!

=c&&e!

=d)

for(f=1;f<=9;f++)

if(f!

=a&&f!

=b&&f!

=c&&f!

=d&&f!

=e)

for(g=1;g<=9;g++)

if(g!

=a&&g!

=b&&g!

=c&&g!

=d&&g!

=e&&g!

=f)

for(h=1;h<=9;h++)

if(h!

=a&&h!

=b&&h!

=c&&h!

=d&&h!

=e&&h!

=f&&h!

=g)

for(i=1;i<=9;i++)

if(i!

=a&&i!

=b&&i!

=c&&i!

=d&&i!

=e&&i!

=f&&i!

=g&&i!

=h)

{

sum1=a*10000+b*1000+c*100+d*10+e;

sum2=f*1000+g*100+h*10+i;

if(sum1==2*sum2)

printf("五位数为:

%d四位数为:

%d\n",sum1,sum2);

}

}

19、#include

#include

voidmain()

{

charstr[100];

intsum=0,i,n=0;

printf("请输入十六进制数:

");

gets(str);

n=strlen(str);

for(i=0;i

{

if(str[i]=='A'|str[i]=='B'|

str[i]=='C'|str[i]=='D'|

str[i]=='E'|str[i]=='F')

str[i]=str[i]-55;

if(str[i]=='a'|str[i]=='b'|

str[i]=='c'|str[i]=='d'|

str[i]=='e'|str[i]=='f')

str[i]=str[i]-87;

if(str[i]=='1'|str[i]=='2'|

str[i]=='3'|str[i]=='4'|

str[i]=='5'|str[i]=='6'|

str[i]=='7'|str[i]=='8'|

str[i]=='9'|str[i]=='0')

str[i]=str[i]-48;

}

for(i=0;i

sum=(sum+str[i])*16;

sum=sum+str[i];

printf("十进制数为:

%d\n",sum);

}

20、#include

voidmain()

{

inta,b,c,d,e,f,g,h,i;

for(a=1;a<=9;a++)

for(b=1;b<=9;b++)

if(a!

=b)

for(c=1;c<=9;c++)

if(c!

=a&&c!

=b)

for(d=1;d<=9;d++)

if(d!

=a&&d!

=b&&d!

=c)

for(e=1;e<=9;e++)

if(e!

=a&&e!

=b&&e!

=c&&e!

=d)

for(f=1;f<=9;f++)

if(f!

=a&&f!

=b&&f!

=c&&f!

=d&&f!

=e)

for(g=1;g<=9;g++)

if(g!

=a&&g!

=b&&g!

=c&&g!

=d&&g!

=e&&g!

=f)

for(h=1;h<=9;h++)

if(h!

=a&&h!

=b&&h!

=c&&h!

=d&&h!

=e&&h!

=f&&h!

=g)

for(i=1;i<=9;i++)

if(i!

=a&&i!

=b&&i!

=c&&i!

=d&&i!

=e&&i!

=f&&i!

=g&&i!

=h)

{

if((a*10+b)*(c*100+d*10+e)==(f*1000+g*100+h*10+i))

printf("a=%db=%dc=%dd=%de=%df=%dg=%dh=%di=%d\n",a,b,c,d,e,f,g,h,i);

}

}

21、#include

#include

voidmain()

{

inta,b,c,d,e,f,g,h,i;

for(a=1;a<=9;a++)

for(b=1;b<=9;b++)

if(a!

=b)

for(c=1;c<=9;c++)

if(c!

=a&&c!

=b)

for(d=1;d<=9;d++)

if(d!

=a&&d!

=b&&d!

=c)

for(e=1;e<=9;e++)

if(e!

=a&&e!

=b&&e!

=c&&e!

=d)

for(f=1;f<=9;f++)

if(f!

=a&&f!

=b&&f!

=c&&f!

=d&&f!

=e)

for(g=1;g<=9;g++)

if(g!

=a&&g!

=b&&g!

=c&&g!

=d&&g!

=e&&g!

=f)

for(h=1;h<=9;h++)

if(h!

=a&&h!

=b&&h!

=c&&h!

=d&&h!

=e&&h!

=f&&h!

=g)

for(i=1;i<=9;i++)

if(i!

=a&&i!

=b&&i!

=c&&i!

=d&&i!

=e&&i!

=f&&i!

=g&&i!

=h)

if(sqrt(a*100000+b*10000+c*1000+d*100+e*10+f)==(g*100+h*10+i))

printf("%d\n",a*100000+b*10000+c*1000+d*100+e*10+f);

}

23、#include

voidmain()

{

intnumber,w1,w2,w3,w4,w5;

printf("请输入一个五位以内的正整数:

");

scanf("%d",&number);

if(number/10==0)

{

printf("它是一个一位数!

\n");

printf("%d\n",number);

printf("正序逆序相同!

\n");

}

else

if(number/100==0)

{

printf("它是一个两位数!

\n");

printf("正序为:

%d%d\n",number/10,number%10);

printf("逆序为:

%d%d\n",number%10,number/10);

}

else

if(number/1000==0)

{

printf("它是一个三位数!

\n");

w1=number/100;

w2=number%100/10;

w3=number%10;

printf("正序为:

%d%d%d\n",w1,w2,w3);

printf("逆序为:

%d%d%d\n",w3,w2,w1);

}

else

if(number/10000==0)

{

printf("它是一个四位数!

\n");

w1=number/1000;

w2=number%1000/100;

w3=number%100/10;

w4=number%100%10;

printf("正序为:

%d%d%d%d\n",w1,w2,w3,w4);

printf("逆序为:

%d%d%d%d\n",w4,w3,w2,w1);

}

else

if(number/100000==0)

{

printf("它是一个五位数!

\n");

w1=number/10000;

w2=number%10000/1000;

w3=number%1000/100;

w4=number%1000%100/10;

w5=number%1000%100%10;

printf("正序为:

%d%d%d%d%d\n",w1,w2,w3,w4,w5);

printf("逆序为:

%d%d%d%d%d\n",w5,w4,w3,w2,w1);

}

else

printf("error!

");

}

27、#include

voidmain()

{

intmonth;

printf("请输入月份month=");

scanf("%d",&month);

switch(month)

{

case1:

printf("January\n");break;

case2:

printf("February\n");break;

case3:

printf("March\n");break;

case4:

printf("April\n");break;

case5:

printf("May\n");break;

case6:

printf("June\n");break;

case7:

printf("July\n");break;

case8:

printf("August\n");break;

case9:

printf("September\n");break;

case10:

printf("October\n");break;

case11:

printf("November\

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2