为什么我这个数组不能排成三行三列的样子?

``````

void main(){
int map[3][3]={{0,0,1},{1,1,1},{1,1,3}};
int hang = sizeof(map)/sizeof(map[0]);
    int lie = sizeof(map[0])/sizeof(int);
    int i,j;
    for(i=0;i<lie;i++){
        for(j=0;j<hang;j++){
            printf("%d",map[i][j]);
        }
    }
    getchar();
}


void main(){
int map[3][3]={{0,0,1},{1,1,1},{1,1,3}};
int hang = sizeof(map)/sizeof(map[0]);
    int lie = sizeof(map[0])/sizeof(int);
    int i,j;
    for(i=0;i<lie;i++){
        for(j=0;j<hang;j++){
            printf("%d",map[i][j]);
        }
        printf("\n");
    }
    getchar();
}
 
 

虽然名称叫做二维数组,但是存储时还是一维的。输出是想要体现二维只需要换行就行了。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7621374
  • 除此之外, 这篇博客: 为什么我的交换函数不起作用?中的 1.实参 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    真实传给函数的参数,叫实参。实参可以是:常量、变量、表达式、函数等。无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^