0

我的函数遇到了一些问题,当我回顾我的代码时,我记得我不太确定我是否正确地翻译了这个数学公式。

注意:如果参数 x 和 y 不在区间 [1, 20] 内,则函数应返回 -1。

在此处输入图像描述

这是我的该功能的代码:

double irrigationExposure(int x, int y) {
   double denominator, fraction, waterexp, wexp;

   if (x >= 1 && x <= 20 && y >= 1 && y <= 20) {
      denominator = (1 + (abs(x - y)))* (1.0);
      fraction = ((IRRIEXPONUM)/(denominator));

      waterexp = (fraction) + (2);

      if (waterexp <= 10) {
         wexp = waterexp;
      }

      else {
         wexp = 2.0;
      }
   }

   else {
      wexp = -1.0;
   }

   return wexp;
}
4

1 回答 1

3

考虑到您希望最大值为 10,那么

if (waterexp <= 10) {
     wexp = waterexp;
  }

  else {
     wexp = 2.0;
  }
}

应该

if (waterexp <= 10) {
     wexp = waterexp;
  }

  else {
     wexp = 10.0;
  }
}

否则,如果waterexp > 10您的答案是 2,而不是 10。

于 2013-10-18T06:51:30.977 回答