[英]Error: maybe the else if statement?
自從我用C語言編程以來已經有一段時間了,所以我需要一些幫助。 以下代碼有某種錯誤。 當我運行代碼時, if
和else 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.