2015-02-23 53 views
-1

伙计们...我在编程方面有点新,所以我会问你:我为用户写了一个程序,想写下某个东西的位置。我认为,这应该使用数组来完成。它看起来像这样:阵列打印奇怪的号码

#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。

对不起,请稍后再试。并感谢您的帮助!

+0

目前还不清楚你想让程序做什么。请给出一个示例输入和预期输出。 – interjay 2015-02-23 18:17:17

+0

请输入点A的位置点A的位置是4 5。 – JEl 2015-02-23 19:07:17

回答

0
int positionA[1][1]; 

声明一个1乘1的数组。也就是,positionA[0][0]是它唯一的元素。您以后地址positionA[1][1],这是超出界限。在C中,一个大小为10的数组允许索引从0到9(即10个元素,从零开始)。

此外,在循环中的循环变量从不乱:

scanf("%d", &j); 

分配输入值的变量j,这是你的循环指标,导致你循环未知的次数,以及访问数组方式越界。

+0

从代码中不可能知道他们是否访问'positionA [1] [1]'。 – juanchopanza 2015-02-23 18:22:23