【发布时间】:2011-07-30 00:19:16
【问题描述】:
这是我新编辑的代码,我在最终的 if 循环中遇到了问题,用于存储在数组中的 X 和 O。我正在尝试检查数组中是否已经存在 X 或 O。如果有一个它会要求用户输入另一个输入然后重新开始但是当我运行程序时会发生这种情况:
1 | 2 | 3
4 | 5 | 6
7 | 8 | 9
Please Enter Box Number: 1
player X your number is 1
X | 2 | 3
4 | 5 | 6
7 | 8 | 9
Please Enter Box Number: 1
Please enter another Number2
player O your number is 1
O | 2 | 3
4 | 5 | 6
7 | 8 | 9
Please Enter Box Number:
char c;
cout << "Please Enter Box Number: ";
cin >> c;
if (c > '9' || c < '0')
{
// error message
cout << "please enter a number 1-9" << " ";
cin >> c;
cin.ignore(numeric_limits<int>::max(), '\n');
}
if (c < '9' || c > '0')
{
int number = c - '0';
if (board[number - 1] == 'X' || board[number - 1] == 'O')
{
cout << "Please enter another Number";
cin >> c;
cin.ignore(numeric_limits<int>::max(), '\n');
}
else if (board[number -1] != 'X' || board[number - 1] != 'O' ) {
if (player == 'X')
{
player = 'O';
}
else
{
player = 'X';
}
cout << "player " << player << " your number is " << number << endl;
// Your implementation here...
board[number - 1] = player;
}
}
}
【问题讨论】:
-
想想如何利用字符 '0' 到 '9' 的 ASCII 值都是连续的这一事实。也就是说,像 '8' - '4' 这样的东西会变成实际的整数 4。