簡體   English   中英

“ int”類型的參數與“ char”類型的參數不兼容

[英]Argument of type 'int' is incompatible with parameter of type 'char'

我正在嘗試使用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++)
        {
            board[i] = empty;

          cout << board << endl;
        }

        cout << endl;
    }
}

int main()
{
    showBoard(10);
}

您的函數期望使用char[] ,但是您正在傳遞int 這些類型顯然不兼容。

但是,這應該兼容:

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

您應該考慮將showBoard函數分成兩個例程:initializeBoard和showBoard。

您的initializeBoard例程應如下所示:

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

showBoard例程是:

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);

您可能希望使用char tiles[] = "---------"; showBoard(tiles); char tiles[] = "---------"; showBoard(tiles); 而不是showBoard(10)

也,

board[i] = empty;

showBoard() 它應該在其他地方(例如,創建另一個函數)。 否則, showBoard()會變showBoard()載,並使那些會閱讀代碼的人感到困惑。 更好的是,考慮帶有show()方法的Board類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM