类型为'的参数;int';与类型为';的参数不兼容;char'; 我试图用C++作为一个简单的TIC TAC-Teo游戏,作为一些家庭作业的一部分,但是很难绘制棋盘。我正在尝试使用连字符(破折号)绘制一个基本板,如:

类型为'的参数;int';与类型为';的参数不兼容;char'; 我试图用C++作为一个简单的TIC TAC-Teo游戏,作为一些家庭作业的一部分,但是很难绘制棋盘。我正在尝试使用连字符(破折号)绘制一个基本板,如:,c++,C++,但是我得到错误“int类型的参数与char类型的参数不兼容”。有人能帮我指一下正确的方向吗 我的代码如下: char empty = '-'; int size = 9; int width = 3; void showBoard(char board[]); void showBoard(char board[]) { for (int i = 0; i < size; i++) { for (int j = 0; j < width; j++

但是我得到错误“int类型的参数与char类型的参数不兼容”。有人能帮我指一下正确的方向吗

我的代码如下:

char empty = '-';

int size = 9;
int width = 3;

void showBoard(char board[]);

void showBoard(char board[])
{
    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < width; j++)
        {
            board[i] = empty;

          cout << board << endl;
        }

        cout << endl;
    }
}

int main()
{
    showBoard(10);
}
char empty='-';
int size=9;
整数宽度=3;
无效展示板(字符板[]);
无效展示板(字符板[])
{
对于(int i=0;icout您的函数期望的是
char[]
,但您传递的是
int
。这些类型显然不兼容

但这应该是兼容的:

char board[] = "123456789";
showBoard(board);

您可能想要
char tiles[]=“-----------”展示板(tiles);
而不是
showBoard(10)

而且


对于<代码> StudioBoad()/代码>是错误的。它应该在其他地方(创建另一个函数,例如)。否则,代码> StBoBOARD()/代码>变得超载和混淆,那些将读取代码的人。最好还是考虑<代码>板/<代码>类,使用<代码>显示()< /P>方法>

你应该考虑将你的展示板功能分成2个例程:初始化板和显示板。 初始化板例程应如下所示:

void initializeBoard(char board[])
{
    for (int i = 0; i < size; i++)
    {
         board[i] = empty;
    }
 }
char board[9];

initializeBoard(board);
showBoard(board);

你希望
10
做什么?对不起,它应该是9,我希望它显示9个连字符。@cvandal,编译器看到它几乎就像你写了一个类似
charboard[]的语句一样=10;
--
10不能合法地解释为字符数组,因为它只是一个整数。为什么在没有使用
j
的情况下,有一个
for
循环使用
j
?它准备在需要时使用多维数组。这在C++11中不应该起作用,并且应该在t之前发出警告因为在
char*
@chris中存储了字符串文字,所以必须编译它才能相信:)你说得对,更新了。
void initializeBoard(char board[])
{
    for (int i = 0; i < size; i++)
    {
         board[i] = empty;
    }
 }
void showBoard(char board[])
{
    for (int i = 0; i < size/width; i++)
    {
        for (int j = 0; j < width; j++)
        {

         cout << board[i*width +j] << ' ';
        }

        cout << endl;
    }
}
char board[9];

initializeBoard(board);
showBoard(board);