使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。此程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),该函数的功能是:将数组左下半三角元素中的值全部置成

admin2018-08-11  41

问题 使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。此程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),该函数的功能是:将数组左下半三角元素中的值全部置成0。例如a数组中的值为:
1  9  7
2  3  8
4  5  6
则返回主程序后a数组中的值应为:
0  9  7
0  0  8
0  0  0
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#define N5
void fun(int a[][N])
{

}
void main()
{
int a[N][N],i,j;
system("CLS");
printf("****The array****\n");
for(i=0;i<N;i++)
/*产生一个随机的5*5矩阵*/
{
for(j=0;j<N;j++)
{
a[j]=rand()%10;
printf("%4d",a[j]);
}
printf("\n");
}
fun(a);
printf("THE RESULT\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%4dI",a[j]);
printf("\n");
}
}

选项

答案void fun(int a[][N]) { int i,j; for(i=0;i<N;i++) for(j=0;j<=i;j++) a[i][j]=0;/*将数组左下半三角元素中的值全部置成0*/ }

解析 对于N×N二维数组,如何表示其左下半三角元素,可以通过以下语句实现。
for(i=0;i<n;i++)
for(j=0;j<=i;j++)
外层循环用来控制矩阵的行下标,内层循环控制矩阵的列下标。注意列下标的取值范围,因为要表示下三角元素,所以j的范围是0~i。
转载请注明原文地址:https://kaotiyun.com/show/6Vxp777K
0

最新回复(0)