2016-02-04 48 views
2

我在玩耍時創建了二維char數組。現在我遇到了問題,當我嘗試將字符放入該數組中時。在二維Char陣列中未正確設置字符

#include <iostream> 
#include <string> 

using namespace std; 

int main() 
{ 
    char field[8][8]; 

    for(int i=0;i<8;i++) 
    { 
    for(int j=0;j<8;j++) 
    { 
    if(field[i][j]==field[2][6]) 
    { 
    field[i][j]='X'; 
    } 
    else 
    { 
    field[i][j]='-';  
    } 
    cout<<field[i][j]; 
    } 
    cout<<endl; 
    } 

return 0; 
} 

但是這給了我:

cmd

我只想X是在field[2][6]而不是從field[2][0]field[2][6]。我在這裏做錯了什麼?

回答

1

if(field[i][j]==field[2][6])正在檢查field[i][j]的內容是否與field[2][6]相同。它沒有檢查位置。如果你只是想field[2][6]有那麼X那麼你可以使用

if (i == 2 && j == 6) 
{ 
    field[i][j]='X'; 
} 
else 
{ 
    field[i][j]='-';  
} 
+0

是現在的工作TY。 – yack

+0

@yack沒問題。 – NathanOliver

1

你要比較i和j不是數組[i] [j]所以,

#include <iostream> 
#include <string> 
using namespace std; 

int main() 
{ 
    char field[8][8]; 

    for (int i = 0; i<8; i++) 
    { 
     for (int j = 0; j<8; j++) 
     { 
      if (i ==2 && j==6) 
      { 
       field[i][j] = 'X'; 
      } 
      else 
      { 
       field[i][j] = '-'; 
      } 
      cout << field[i][j]; 
     } 
     cout << endl; 
    } 
    system("pause>null"); 
    return 0; 
} 
+0

是啊,TY我現在知道了:d – yack

+0

確定這樣至少可以給我答案的得分:) – Weaboo

+0

@yack謝謝 – Weaboo