2015-02-23 88 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