定义N×N的二维数组,并在主函数中自动赋值

定义N×N的二维数组,并在主函数中自动赋值

问题描述:

程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun( int a[][N]),
函数的功能是:使数组左下三角元素中的值全部置成0 。例如:a 数组中的值为
| 1 2 3 | | 0 2 3 |
a = | 1 2 3 | 则返回主程序后a数组中的值应为 | 0 0 3 |
| 1 2 3 | | 0 0 0 |
本人能力至此

#include<stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 3
void fun(int a[][N])
{int i,j;
 for(i=0;i<N;i++)
       for(j=0;j<N;j++)
       {srand(time( NULL ));
       a[i][j]=1 + (rand()%10);
       }
for(i=0;i<N;i++)
       for(j=0;j<N;j++)
       {
        printf("%d ",a[i][j]);
        printf("\n");
       }   
}
int main()
{int i,j, a[N][N];
 fun(a);
    for(i=1;i<N;i++)
       for(j=0;j<N-1;j++)
       {
        a[i][j]=0;
       }
    for(i=0;i<N;i++)
       for(j=0;j<N;j++)
       {
        printf("%d ",a[i][j]);
        printf("\n");
        return 0;
       }
 
}


```)


![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/694950011236195.png "=600 #left")

给你改好了,有帮助望采纳:

#include<stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 3
void fun(int a[][N])
{int i,j;
 for(i=1;i<N;i++)
       for(j=0;j<i;j++)
       {
        a[i][j]=0;
       }
    for(i=0;i<N;i++){
        for(j=0;j<N;j++)
       {
        printf("%d ",a[i][j]);

       }
       printf("\n");
    }

}
int main()
{int i,j, a[N][N]={1,2,3,4,5,6,7,8,9};
    for(i=0;i<N;i++)
       for(j=0;j<N;j++)
       {srand(time( NULL ));
       a[i][j]=1 + (rand()%10);
       }
    for(i=0;i<N;i++)
       for(j=0;j<N;j++){
        {
            printf("%d ",a[i][j]);

        }printf("\n");
       }

 fun(a);
}

img

j<i的元素就是左下三角的元素,用if判断一下即可。