阵列打印奇怪的数字

时间:2015-02-23 18:07:23

标签: c arrays

伙计们...我在编程方面有点新意,所以我会问你这个:我为那些希望写下某些东西的用户制作了程序。我假设,这应该使用数组完成。它看起来像这样:

#include <stdio.h>

int main()
{
int positionA[1][1];

int i;
int j;
printf("Insert postitions x and y : \n");

for ( i=0;i<2;i--)
    {scanf("%d", &i);
    for ( j=0;j<2;j--)
            {
            scanf("%d", &j);
            }
    printf("%d", positionA[i][j]);
    }


return 0;
}

如果我让这个程序变得糟糕,请不要生我的气。 嗯,问题是,我插入2,5之类的数字。在输出端,它看起来像1695956464。

抱歉英语不好:P。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

int positionA[1][1];

声明1-by-1数组。也就是说,positionA[0][0]是它唯一的元素。你稍后解决了positionA[1][1],它超出了它的范围。在C中,大小为10的数组允许索引从0到9(即10个元素,从零开始)。

此外,永远不要在循环中弄乱你的循环变量:

scanf("%d", &j);

将输入值分配给变量j,这是您的循环索引,导致您循环未知次数,并访问数组 way 越界。