类型为'的参数;int';与类型为';的参数不兼容;char'; 我试图用C++作为一个简单的TIC TAC-Teo游戏,作为一些家庭作业的一部分,但是很难绘制棋盘。我正在尝试使用连字符(破折号)绘制一个基本板,如:
但是我得到错误“int类型的参数与char类型的参数不兼容”。有人能帮我指一下正确的方向吗 我的代码如下:类型为'的参数;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++
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;i cout您的函数期望的是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);