在二维字符数组中未正确设置字符

时间:2016-02-04 20:53:13

标签: c++ arrays

我在玩,我创建了二维char数组。现在我遇到问题,当我尝试将字符放入该数组时。

infixl 5 `add`
add :: String -> String -> String
add a b = a ++ " + " ++ b

infix 2 <~ 
(<~) :: String -> String -> String
new <~ old = old ++ " as " ++ new

但是这给了我:

cmd

我只希望#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; } 位于X而不是field[2][6]field[2][0]。我在这里做错了什么?

2 个答案:

答案 0 :(得分: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]='-';    
}

答案 1 :(得分: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;
}