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