#include<stdio.h>
int main (void)
{
char ch;
int player=0;
int winner=0;
int choice=0;
int row=0;
int column;
int line=0;
char board[3] [3] ={
{*1*,*2*,*3*},
{*4*,*5*,*6*},
{*7*,*8*,*9*}
};
do
{
for(int i=0; i<9 && winner==0; i++)
{
printf("\n\n");
printf("%c |%c |%c\n", board[0][0], board[0][1], board[0][2]);
printf("--+--+--\n");
printf("%c |%c |%c\n", board[1][0], board[1][1], board[1][2]);
printf("--+--+--\n");
printf("%c |%c |%c\n", board[2][0], board[2][1], board[2][2]);
player = i%2+1;
do
{
printf("\nPlayer %d,please enter the number of the square\n"
"where you want to place your %c:", player, (player==1)?*X*:*O*);
scanf("%d", &choice);
row = --choice/3;
column = choice%3;
}while(choice<0 || choice>9 || board[row][column]>*9*);
board[row][column] = (player == 1) ? *X*:*O*;
if ((board[0][0]==board[1][1] && board[0][0]==board[2][2]) ||
(board[0][2]==board[1][1] && board[0][2]==board[2][0]))
winner = player;
else
for(line = 0; line<= 2; line++)
if((board[line][0]==board[line][1] && board[line][0]==board[line][2])||
(board[0][line]==board[1][line] && board[0][line]==board[2][line]))
winner = player;
}
printf("\n\n");
printf("%c |%c |%c\n", board[0][0], board[0][1], board[0][2]);
printf("--+--+--\n");
printf("%c |%c |%c\n", board[1][0], board[1][1], board[1][2]);
printf("--+--+--\n");
printf("%c |%c |%c\n", board[2][0], board[2][1], board[2][2]);
if (winner==0)
printf("\nIt is a draw.\n");
else
printf("\nPlayer %d, you are the winner!\n", winner);
printf("Do you want to play again\?\n"
"Enter \"y\" to replay, or enter \"q\" to quit:");
scanf("%c", &ch);
}while(ch==*y*);
getchar();
return 0;
}
在运行程序中,最后的scanf("%c", &ch); 并未执行,跪求原因何在?????
int main (void)
{
char ch;
int player=0;
int winner=0;
int choice=0;
int row=0;
int column;
int line=0;
char board[3] [3] ={
{*1*,*2*,*3*},
{*4*,*5*,*6*},
{*7*,*8*,*9*}
};
do
{
for(int i=0; i<9 && winner==0; i++)
{
printf("\n\n");
printf("%c |%c |%c\n", board[0][0], board[0][1], board[0][2]);
printf("--+--+--\n");
printf("%c |%c |%c\n", board[1][0], board[1][1], board[1][2]);
printf("--+--+--\n");
printf("%c |%c |%c\n", board[2][0], board[2][1], board[2][2]);
player = i%2+1;
do
{
printf("\nPlayer %d,please enter the number of the square\n"
"where you want to place your %c:", player, (player==1)?*X*:*O*);
scanf("%d", &choice);
row = --choice/3;
column = choice%3;
}while(choice<0 || choice>9 || board[row][column]>*9*);
board[row][column] = (player == 1) ? *X*:*O*;
if ((board[0][0]==board[1][1] && board[0][0]==board[2][2]) ||
(board[0][2]==board[1][1] && board[0][2]==board[2][0]))
winner = player;
else
for(line = 0; line<= 2; line++)
if((board[line][0]==board[line][1] && board[line][0]==board[line][2])||
(board[0][line]==board[1][line] && board[0][line]==board[2][line]))
winner = player;
}
printf("\n\n");
printf("%c |%c |%c\n", board[0][0], board[0][1], board[0][2]);
printf("--+--+--\n");
printf("%c |%c |%c\n", board[1][0], board[1][1], board[1][2]);
printf("--+--+--\n");
printf("%c |%c |%c\n", board[2][0], board[2][1], board[2][2]);
if (winner==0)
printf("\nIt is a draw.\n");
else
printf("\nPlayer %d, you are the winner!\n", winner);
printf("Do you want to play again\?\n"
"Enter \"y\" to replay, or enter \"q\" to quit:");
scanf("%c", &ch);
}while(ch==*y*);
getchar();
return 0;
}
在运行程序中,最后的scanf("%c", &ch); 并未执行,跪求原因何在?????