二维数组练习题参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二维数组练习题参考答案
1、求一个4x4数组左下三角(包括主对角线)元素的和(数组元素的值读者自定)。
#include "stdio.h"
main( )
{ int i,j,s=0,x[4][4]; /* i,j是循环变量*/
/*给二维数组元素从键盘上读入数据并把元素输出到屏幕上*/
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
{scanf("%d",&x[i][j]);
printf("%5d",x[i][j]);
}
printf("\n");
}
/*给二维数组元素从键盘上读入数据并把元素输出到屏幕上*/
/******求数组左下三角(包括主对角线)元素的和****/
for(i=0;i<4;i++)
for(j=0;j<=i;j++)
s=s+x[i][j];
/******求数组左下三角(包括主对角线)元素的和****/
/**********输出和**************/
printf("s=%5d\n",s);
/**********输出和**************/
}
2、生成并输出一个杨辉三角的前7行,用金字塔的形式输出。
main( )
{int a[7][7], i, j;
/*给二维数组第一列与对角线元素赋1值*/
for(i=0; i<7; i++)
{ a[i][0]=1;
a[i][i]=1;
}
/*给二维数组第一列与对角线元素赋1值*/
/*****给二维数组的其它元素赋值******/
for(i=2; i<7; i++)
for(j=1; j<="" p="">
a[i][j]=a[i-1][j-1]+a[i-1][j];
/*****给二维数组的其它元素赋值******/
/*输出三角形,用每行加空格的方式挤出金字塔*/ for(i=0; i<7; i++)
{ for(j=0; j<=7-i; j++)
printf( " ");
for(j=0; j<=i; j++)
printf("%4d", a[i][j]);
printf("\n");
}
/*输出三角形,用每行加空格的方式挤出金字塔*/ }
3、找规律自动填充如图所示的6x6方阵。
111222
111222
111222
333444
333444
333444
main( )
{int a[6][6], i, j;
/*****给二维数组的元素赋值******/
for(i=0; i<6; i++)
for(j=0; j<6; j++)
if(i<=2 && j<=2)
a[i][j]=1;
else if(i<=2 && j>2)
a[i][j]=2;
else if(i>2 && j<=2)
a[i][j]=3;
else
a[i][j]=4;
/*****给二维数组的元素赋值******/
/******输出二维数组的元素*******/
for(i=0; i<6; i++)
{ for(j=0; j<6; j++)
printf("%4d", a[i][j]);
printf("\n");
}
/******输出二维数组的元素*******/
}
4、求3x4数组中大于等于平均值的所有数组元素的和,并统计满足条件元素的个数(数组元素的值读者自定)。
#include "stdio.h"
main( )
{int a[3][4],i,j,k=1;/*i,j为循环控制变量,k为二维数组赋值变量*/ float s=0,ver;/*s为二维数组元素的和,ver为平均值变量*/
/*给二维数组赋值1 2 3 4 5 6 7 8 9 10 11 12,并按3行4列输出*/
for(i=0; i<3; i++)
{ for(j=0; j<4; j++)
{a[i][j]=k++;
printf("%5d",a[i][j]);
}
printf("\n");
}
/*给二维数组赋值1 2 3 4 5 6 7 8 9 10 11 12,并按3行4列输出*/
/*求二维数组元素和及平均值*/
for(i=0; i<3; i++)
for(j=0; j<4; j++)
s=s+a[i][j];
ver=s/12;
/*求二维数组元素和及平均值*/
/*求大于平均值二维数组元素和及个数,s为和,k为个数*/
s=0;
k=0;
for(i=0; i<3; i++)
for(j=0; j<4; j++)
if(a[i][j]>=ver){s=s+a[i][j];k++;}
/*求大于平均值二维数组元素和及个数*,s为和,k为个数*/
/*输出平均值,大于平均值二维数组元素和及个数*/
printf("ver=%5.2f,s=%5.2f,k=%5d\n",ver,s,k);
/*输出平均值,大于平均值二维数组元素和及个数*/
}
5、求一个5x5数组中主对角线元素的和以及副对角线元素的积(数组元素的值读者自定)。
#include "stdio.h"
main( )
{int a[5][5],i,j;/*i,j为循环控制变量*/
float s=0,k=1;/*s为二维数组主对角线元素的和,k为副对角线元素之积*/
/*给二维数组赋值1 2 3 4 5 6 7 8 9 ……25,并按5行5列输出*/ for(i=0; i<5; i++)
{ for(j=0; j<5; j++)
{a[i][j]=k++;
printf("%5d",a[i][j]);
}
printf("\n");
}
/*给二维数组赋值1 2 3 4 5 6 7 8 9 10 11 12,并按3行4列输出*/
/*求二维数组元素主、副对角线的和与积*/
k=1;
for(i=0; i<5; i++)
for(j=0; j<5; j++)
{ if(i==j)s=s+a[i][j];
if(i+j==4)k=k*a[i][j];
}
/*求二维数组元素主、副对角线的和与积*/
/*输出维数组元素主、副对角线的和与积*/ printf("s=%5.2f,k=%.0f\n",s,k);
/*输出维数组元素主、副对角线的和与积*/ }。