问答题
下列程序定义了N×N的二维数组,并在主函数中自动赋值;请编写函数fun(int a[][N]),该函数的功能是:使数组左下半三角元素中的值全部置成0。例如a数组中的值为
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 N 5
int fun (int a[] [N])
{
}
main()
{
int a[N] [N],i,j;
clrscr();
printf("*****The array*****/n");
for(i=0;i<N;i++)
/*产生—个随机的5*5矩阵*/
{ for(j=0;j<N;j++)
{a[i][j]=rand()%10;
printf("%4d", a[i][j]);
}
printf("/n");
}
fun (a);
printf("THE RESULT/n");
for(i=0;i<N;i++)
{ for(j=0;j<N;j++)
printf("%4d",a[i][j));
printf("/n");
}
}
【正确答案】
【答案解析】int fun (int a[][N])
{
int i,j;
for(i=0;i<N;i++)
for(j=0;j<=i;j++)
a[i][j]=0; /*将数组左下半三角元素中的值全部置成0*/
}
[解析] 本题旨在考查控制数组中左下半三角元素的算法,也就是两个千篇一律的循环语句,希望学习者能够掌握消化。