算法设计与分析习题答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算法设计与分析习题答案(第二版)

主编:吕国英习题答案

习题答案

第三章:

1.

#include

#include

int main(int argc,char **argv) {

int n;

int i,j,k;

int *buf;

printf(" 请输入n 的数值:");

scanf("%d",&n);

buf=(int *)malloc(n*sizeof(int));

for(i=0;i

{

buf[i]=2;

}

for(i=n-2;i>=0;i--)

for(j=i;j>=0;j--)

{

buf[j]+=2;

}

}

for(k=0;k<=n-2;k++)

{

if(buf[k]>=10)

{

buf[k+1]+=buf[k]/10;

buf[k]%=10;

}

}

for(i=n-1;i>=0;i--)

printf("%d",buf[i]);

printf("\n");

return 0;

}

2.

#include int main(int argc,char **argv) int buf[6][6]; int i,j;

printf(" 任意输入6 个数字:");

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

scanf("%d",&buf[0][i]); for(i=0;i<5;i++)

{

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

{

buf[i+1][j+1]=buf[i][j];

}

buf[i+1][0]=buf[i][j];

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

{

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

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

printf("\n");

}

return 0;

3.

#include

#define N 7

int main(int argc,char **argv) { int buf[N][N];

int i,j,k,m,n;

int a=0,b=N-1;

int count=1;

for(i=0;i<(N/2)+(N%2);i++) {

for(j=a;j<=b;j++)

{

buf[a][j]=count++;

} for(k=a+1;k<=b;k++)

{

buf[k][b]=count++;

}

for(m=b-1;m>=a;m--)

buf[b][m]=count++;

for(n=b-1;n>a;n--)

{

buf[n][a]=count++;

}

a++;

b--;

}

for(i=0;i

{

for(j=0;j

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

printf("\n");

}

return 0;

}

4.

#include

#define N 5

int main(int argc,char **argv) { int buf[N][N];

int i,j,k;

int count=1;

int n=0;

for(i=0;i

{

for(k=0,j=n;j>=0;j--,k++)

buf[j][k]=count++;

n++;

}

for(i=0;i

{

for(j=0;j

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

printf("\n");

}

return 0;

}

5.

#include

#define N 5

int main(int argc,char **argv) {

int buf[N][N];

int i,j;

int a=0,b=N-1;

int count=1;

for(i=0;i

{

for(j=a;j<=b;j++) buf[a][j]=count;

for(j=a+1;j<=b;j++)

buf[j][b]=count;

for(j=b-1;j>=a;j--)

buf[b][j]=count; for(j=b-

1;j>a;j--)

buf[j][a]=count;

count++;

a++;

b--;

}

for(i=0;i

{

for(j=0;j

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

printf("\n");

相关文档
最新文档