这是将此数学公式转换为c函数的正确方法吗?

时间:2013-10-18 06:45:33

标签: c math

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

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

enter image description here

这是我的功能代码:

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;
}

1 个答案:

答案 0 :(得分:3)

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

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

  else {
     wexp = 2.0;
  }
}

应该是

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

  else {
     wexp = 10.0;
  }
}

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