我正在尝试从用户输入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/