我知道这意味着函数可能在不返回值的情况下到达终点,但我不确定为什么。

bool bisearch(int value, int values[], int min, int max)
{
    if (max < min)
        return false;
    else
    {
        int midpoint = (max + min) / 2;
        if (value > values[midpoint])
            bisearch(value, values, midpoint + 1, max);
        else if (value < values[midpoint])
            bisearch(value, values, min, midpoint - 1);
        else
            return true;
    }
}

最佳答案

如果达到标记行,则不返回值。

  bool bisearch(int value, int values[], int min, int max)
  {
      if (max < min)
          return false;
      else
      {
          int midpoint = (max + min) / 2;
          if (value > values[midpoint])
->            bisearch(value, values, midpoint + 1, max);
          else if (value < values[midpoint])
->            bisearch(value, values, min, midpoint - 1);
          else
              return true;
      }
  }

关于c - 错误:控件可能会到达非void函数的结尾,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28267380/

10-12 19:14