簡體   English   中英

錯誤:也許其他if語句?

[英]Error: maybe the else if statement?

自從我用C語言編程以來已經有一段時間了,所以我需要一些幫助。 以下代碼有某種錯誤。 當我運行代碼時, ifelse if被跳過,並且在屏幕上提示我的硬編碼錯誤。

void play_tictactoe()
{
int row = 0, column = 0, i, win = 0;
char letter = 0;
char board[3][3] =
{
    {' ',' ',' '},
    {' ',' ',' '},
    {' ',' ',' '}
};

printf( "\nDo you want to be X or O: " );
scanf( "%c", &letter );

if( letter == 'x' || letter == 'X' )
{
    for( i = 0; i > 9 && win == 0; i++ )
    {
        printf( "\nPlace X: Row 1-3 and Column 1-3 (i.e. 1,3 for Row 1 and Column 3): " );
        scanf( "%i,%i", &row, &column );

        do
        {
            playersTurnX( &row, &column, board );
            computersTurnX( &row, &column, board );
        }
        while( row > 3 || column > 3);
    }
}
else if( letter == 'o' || letter == 'O' )
{
    for( i = 0; i > 9 && win == 0; i++ )
    {
        printf( "\nPlace O: Row 1-3 and Column 1-3 (i.e. 1,3 for Row 1 and Column 3): " );
        scanf( "%i,%i", &row, &column );

        do
        {
            //computersTurnO( &row, &column, &board );
            //playersTurnO( &row, &column, &board );
        }
        while( row > 3 || column > 3);
    }
}
else
{
    printf( "\nError!!!!\tInvalid entry.\n" );
}
}

使用時:

scanf( "%c", &letter );

您最終甚至將換行符讀入c 采用:

scanf( " %c", &letter );
//     ^^^^ add a space before %c.

使用" %c"將確保跳過所有空白字符,並且僅會將非空白字符讀入c

通常,您要在%c之前添加一個空格以占用空白:

scanf( " %c", &letter );

請參閱此處以獲取更多信息: https : //gsamaras.wordpress.com/code/caution-when-reading-char-with-scanf-c/

暫無
暫無

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

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