第8章 习题参考答案

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

第8章习题

8.5 10个元素的整型数组,冒泡法升序排序

#include

void main()

{

int a[10];

int i,j,t;

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

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

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

{

for(j=0;j<10-i;j++)

if(a[j]>a[j+1]) //相邻元素两两比较

{

t=a[j];a[j]=a[j+1];a[j+1]=t;

}

}

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

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

}

8.6 找出一个二维数组的最大值和最小值,输出该值并输出它的下标。提示:二维数组没有指定,可以在编程自己决定

参考代码:

#include

void main()

{

int a[3][4];

int i,j,max,min,rowmax,colmax,rowmin,colmin;

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

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

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

//输出数组

printf("Array A:\n");

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

{

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

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

printf("\n");

}

//求最大值、最小值及下标

//将第一个数组元素当成最大值和最小值

max=a[0][0];

rowmax = 0;

colmax = 0;

min=a[0][0];

rowmin = 0;

colmin = 0;

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

{

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

{

if(max

{

max=a[i][j];

rowmax=i;

colmax=j;

}

if(min>a[i][j])

{

min=a[i][j];

rowmin=i;

colmin=j;

}

}

}

//输出

printf("max=%d,rowmax=%d,colmax=%d\n ",max,rowmax,colmax);

printf("min=%d,rowmin=%d,colmin=%d\n", min,rowmin,colmin);

}

8.7 找出一个二维数组每一行的最大值和最小值及其下标(可参阅7.10)#include

void main()

{

int a[3][3]={1,2,3,4,5,6,7,8,9};

int i,j,mn,mx,mncol,mxcol;

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

{

mn=a[i][0];mncol=0;mx=a[i][0];mxcol=0;

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

{

if(mx

{

mx=a[i][j];mxcol=j;

}

if(mn>a[i][j])

{

mn=a[i][j];mncol=j;

}

}

printf("max=%d,row=%d,col=%d\n",mx,i,mxcol);

printf("min=%d,row=%d,col=%d\n",mn,i,mncol);

}

}

8.8 编程求4*4矩阵对角线元素之和。

提示:求对角线之和,一般都是针对N阶方阵,可以直接定义四阶,也可以对所有小于10阶的方阵进行处理

参考代码:

#include

void main()

{

int a[10][10]; //因为C的数组是固定大小的,所以可以定义大一点

int i,j,n,sum=0;

printf("输入数组阶数:\n");

scanf("%d",&n);

printf("请输入%d阶数组元素:\n",n);

for(i=0;i

for(j=0;j

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

//输出数组

for(i=0;i

{

for(j=0;j

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

printf("\n");

}

//求和

for(i=0;i

{

for(j=0;j

if(i==j||i+j==n-1) //i+j==n-1是辅对角线的条件

sum=sum+a[i][j];

}

//输出

printf("sum=%d\n",sum);

}

8.9 编程对字符串逆转。例如,输入”abcd”逆转后的结果为“dcba”

提示:对于一维数组,逆转的关键是首尾元素的交换,对于二维数组,逆转就是矩阵的转置

参考代码1:

相关文档
最新文档