马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
想声明一个函数用于判断井字棋的胜利,目前写出了一部分,但不知道哪里出了问题,思路是如果胜利则返回正值bool winArrays(char arr[3][3])
{
for (int i = 0; i < 3; i++)
{
if (arr[i][0] == arr[i][1] == arr[i][2] == 'x')
{
return true;
}
else
{
break;
}
}
for (int j = 0; j < 3; j++)
{
if (arr[0][j] == arr[1][j] == arr[2][j] == 'X')
{
return true;
}
else
{
break;
}
}
return false;
}
问题出在对于数组元素的比较上。在C语言中,不能直接使用连续的等于操作符进行多个值的比较。
正确的写法应该是使用逻辑与操作符(&&)来连接多个比较操作。
以下是修正后的代码:
bool winArrays(char arr[3][3])
{
for (int i = 0; i < 3; i++)
{
if (arr[ i][0] == 'x' && arr[ i][1] == 'x' && arr[ i][2] == 'x')
{
return true;
}
else
{
break;
}
}
for (int j = 0; j < 3; j++)
{
if (arr[0][j] == 'X' && arr[1][j] == 'X' && arr[2][j] == 'X')
{
return true;
}
else
{
break;
}
}
return false;
}
修正后的代码中,使用逻辑与操作符(&&)连接了每个元素的比较操作,只有当所有的比较都为真时,才会返回true。
|