问题 问答题

下列程序定义了NXN的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),该函数的功能是使数组右上半三角元素中的值全部置成0。例如a数组中的值为 a=4 5 6 1 7 9 3 2 6, 则返回主程序后a数组中的值应为 0 0 0 1 0 0 3 2 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;i<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=i;j<N;j++) a[i][j]=0; /*将数组右上半三角元素中的值全部置成0*/ } 本题旨在考查控制数组中右上半三角元素的算法,也就是两个千篇一律的循环语句,希望学习者能够掌握消化。

多项选择题
填空题