我正在尝试从用户输入2d数组,我的数组大小是6,但是我想输入7个元素。这是什么错误?您能否也告诉我如何使用单个指针从用户输入二维数组。

#include <stdio.h>

int main()
{
    int a[2][3] = {0};
    int i=0,j=0,l=0;
    printf("enter 2d");

    for(i=0;i<2;i++)
    {
        for(j=0;j<3;j++)
        {
            scanf("%d\n",&a[i][j]);
        }
    }

    for(i=0;i<2;i++)
    {
        for(j=0;j<3;j++)
        {
            printf("%d\n",a[i][j]);
        }
    }

    return 0;
}

这是我的输出:
./input2dusingsinglearray

enter 2d

1
2
3
4
5
6
7

1
2
3
4
5
6

最佳答案

问题在于您的scanf等待额外的介绍,请更改为:

#include <stdio.h>

int main(void)
{
    int a[2][3] = {0};
    int i=0,j=0,l=0;

    printf("enter 2d\n");
    for(i=0;i<2;i++)
    {
        for(j=0;j<3;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    for(i=0;i<2;i++)
    {
        for(j=0;j<3;j++)
        {
            printf("%d\n",a[i][j]);
        }
    }
    return 0;
}

另请注意,必须以这种方式初始化2d数组:
int a[2][3] = {{0},{0}};

开启警告:

关于c - 我的2D数组多了一个元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25145030/

10-11 22:59
查看更多