问答详情
源自:6-9 多维数组

我打印这两个数组表现出来不对,哪里错了呢

#include <stdio.h>

int main()

{

    //使用第一种方式初始化方式声明并初始化二维数组arr1

    int arr1[][1]={ { 10 , 20 }, { 30, 40 }};

    //使用第二种方式初始化方式声明并初始化二维数组arr2

    int arr2[1][1]; arr2[0][0]=10;arr2[0][1]=20;arr2[1][0]=30;arr2[1][1]=40;

    int i,j;

    for(i=0;i<=1;i++)

    {

        for(j=0;j<=1;j++)

        {

            printf("%d\r",arr1[i][j]);

        }

    }

    

    for(i=0;i<=1;i++)

    {

        for(j=0;j<=1;j++)

        {

            printf("%d\r",arr2[i][j]);

        }

    }

    return 0;    

}


提问者:St义 2016-01-20 15:29

个回答

  • 逍遥草0310
    2016-02-06 23:31:05

    我觉得是因为数组大小定义的问题吧,arr[2][2]是2*2的数组,你定义一个arr[1][1],无法装下4个数啊

  • zcmam
    2016-01-20 20:33:57

      int arr1[][1]={ { 10 , 20 }, { 30, 40 }};和 int arr2[1][1];这两个数组要定义为两列的;

    printf("%d\r",arr1[i][j]);和printf("%d\r",arr2[i][j]);这两行把\r改为\t