C语言如何用一个自定义函数打印一个二维数组

高手们哪位知道,C语言如何用一个自定义函数打印一个二维数组?

void print(int str[][],int n)
{
int i,j;
for(i=0;i<50;i++)
{
for(j=0;j<50;j++)
{
printf("%d",str[i][j]);
if(j=49)
printf("\n");
}

}
}

main里面调用。。
print(str,2500);
最新回答
繁花晕染

2024-12-01 00:38:50

二维数组
无法作为参数直接传递给函数,但是可以利用二维数组内部数据的连续性,将二维数组的地址按照一维数组的方式传递给函数,并传入对应的行列数,从而实现函数内打印二维数组的效果。

整型
为例,具体方式如下:

void print_array(int *a, int m, int n)//a为一个m行,n列的二维数组的首地址。
{
    int i, j;
    for(i = 0; i < m; i ++)
    {
        for(j = 0; j < n; j ++)
        {
            printf("%d,", a[i*n+j]);//a[i*n+j]也就是原始二维数组第i行第j列的元素。
        }
        printf("\n");//每行结束输出换行。
    }
}
祁梦

2024-12-01 00:04:49

难道这个代码有问题吗?我觉得是对的啊,不过我会这样:

void print(int str[][],int n)
{
int i,j;
for(i=0;i<50;i++)
{
for(j=0;j<50;j++)
printf("%d",str[i][j]);

}