下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),该函数的功能是:将数组左下半三角元素中的值全部置成O。例如a数组中的值为: 1 9 7 2 3 8 4

admin2017-07-18  40

问题 下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),该函数的功能是:将数组左下半三角元素中的值全部置成O。例如a数组中的值为:
    1    9     7
    2    3    8
    4    5    6
    则返回主程序后a数组中的值应为:
    0    9    7
    0    0    8
    0    0    0
    注意:部分源程序给出如下。
    请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
    试题程序:
    #include
    #include
    #include
    #define N 5
    void fun(int a[][N])
    {
    }
    void main()
    {
    int a[N][N],i,j;
    system(”CLS”);
    printf("*****The array*****\n");
   for(i=0;i    /*产生一个随机的5 * 5矩阵*/
    {
    for(j=0;j    {
    a[j]=rand()%10;
    printf("%4d",a[j]);
    }
    printf("\n");
    }
    fun(a);
    printf("THE RESULT\n");
    for(i=0;i    {
    for(j=0;j    printf("%4d",a[j]);
    printf("\n");
    }
}

选项

答案void fun(int a[][N]) { int i,j; if(a==NULL)retum; f10r(i=0;i
解析 对于N×N二维数组,如何表示其左下半三角元素,可以通过以下语句实现。
    for(i=0;i    for(j=0;j<=i;j++)
    外层循环用来控制矩阵的行下标,内层循环控制矩阵的列下标。注意列下标的取值范围,因为要表示下三角元素,所以j的范围是0~i。
转载请注明原文地址:https://jikaoti.com/ti/MYi0FFFM
0

最新回复(0)