Eat.随 发表于 2023-11-9 09:55:29

井字棋

想声明一个函数用于判断井字棋的胜利,目前写出了一部分,但不知道哪里出了问题,思路是如果胜利则返回正值
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;
}

isdkz 发表于 2023-11-9 09:56:28

问题出在对于数组元素的比较上。在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]
查看完整版本: 井字棋