2016-02-04 51 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