第5章数组-习题答案讲解学习

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

第5章数组-习题答

1: /*编写程序,用筛选法求 100 之内的素数。*/ #include

void main ()

{

int i,j;

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

{

for (j=2; j

{

if (i%j== 0)

break;

}

if (j == i)

printf("%d\t", i);

}

}

2/*输入一整数,并能逐位正序或反序输出。*/ #include

void main()

{

int num,a,i=0;

printf("输入一个数字\n");

scanf("%d",&num);

printf("正序输出则输入 1 反序输出输入 0\n"); scanf("%d",&a);

switch(a)

{

case 1:

printf("%d",num); break;

case 0:

while(0!=num)

{

i=i*10+num%10;

num=num/10;

}

printf("%d",i);

break;

default:

printf("请输入 0 和 1!!\n");

break;

}

}

3/*对于一个 4X4 矩阵逆时针旋转 90 度*/

#include

void main()

{

int a[4][4],i,j,b[4][4];

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

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

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

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

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

{

b[3-j][i]=a[i][j];

}

printf("逆时针旋转 90 度后:\n");

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

{

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

{

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

}

printf("\n");

}

}

4: /*将一个数组中的数据奇数放到前面,偶数放到后面。*/ #include

void main ()

{

int a[9],b[9],i,j=0,m=0;

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

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

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

{

if(a[i]%2!=0)

{

b[j]=a[i];

j++;

}

else

{

b[8-m]=a[i];

m++;

}

}

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

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

}

5: /*输入一个 4X4 的矩阵,求四个边上元素的和。*/

#include

void main ()

{

int i,j,a[4][4],sum;

printf("输入一个 4 阶方阵:\n");

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

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

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

sum=a[0][0]+a[0][3]+a[3][0]+a[3][3];

printf("四个边上元素的和为%d\n",sum);

}

6:/*输入 9 个10 以内的自然数,将它们组成两个整数,求如何组合得到两个数的成绩最大或最小。*/

#include

#include

void main ()

{

int j,k;

int i;

int t;

int a=0,b=0;

int flag=1;

int num[9];

int max,max_a,max_b;

int min,min_a,min_b;

printf("输入 9 个 10 以内的自然数:");

scanf("%d",&num[j]);

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

for(k=0;k<8-j;k++)

if(num[k]>num[k+1])

{

t=num[k+1];

num[k+1]=num[k];

num[k]=t;

}

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

{

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

{

if((i&(int)pow(2.0,j))==0)

a=a*10+num[j];

else

b=b*10+num[j];

}

if(flag)

{

max=a*b;

max_a=a;

max_b=b;

flag=0;

}

if(max

{

max=a*b;

max_a=a;

max_b=b;

}

a=0;

b=0;

}

flag=1;

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

for(k=0;k<8-j;k++)

if(num[k]

{

t=num[k+1];

num[k+1]=num[k];

num[k]=t;

}

相关文档
最新文档