2015-05-05 28 views
0
int proximity = 0; 

for(int i = coord.x - 1; i <= coord.x + 1; i++) 
{ 

    if(i < 0) 
    { 
     i = coord.x; //prevents from leaving the top of sub array 
    } 

    for(int j = coord.y - 1; j <= coord.y + 1; j++) 
     { 

      if(j < 0) 
      { 
       j = coord.y; 
      } 

      if((board[i][j] == bomb) || (board[i][j]==hidden)) 

       proximity++; 

     } //nested for loop runs through a sub array based on user input between 0-4 


} 

我想檢查一個子數組中的座標,我嘗試了許多不同的變化,但我無法設法輸入座標在第4行而沒有得到核心轉儲錯誤。我知道這可能是我需要輸入的一個簡單的小線來解決這個問題,但我很難過。子陣核心轉儲問題

回答

0

在你的代碼中你已經執行了下界檢查,但你的上界檢查丟失了。您需要確保您的x或y座標不超過板邊界。

就在你的循環添加額外的條件,假設你的X_SIZE ANS Y_SIZE是

for(int i = coord.x?coord.x - 1:0; 
    i <= coord.x + 1 && i < X_SIZE; 
    i++) 
{ 
    for(int j = coord.y?coord.y - 1:0; 
     j <= coord.y + 1 && j < Y_SIZE; 
     j++) 
    { 
      if((board[i][j] == bomb) || (board[i][j]==hidden)) 
      { 
       proximity++; 
      } 
    } 
} 
+0

吧,我沒有包含任何,因爲我不能讓它正常工作各個尺寸的大小,是什麼我發佈了除第四行以外的作品 – ColinO