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

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

最佳答案

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

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

  else {
     wexp = 2.0;
  }
}

应该是

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

  else {
     wexp = 10.0;
  }
}

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

关于c - 这是将此数学公式转换为 c 函数的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19443248/

相关文章:

c - 我在我的程序中找不到内存泄漏

javascript - 拖放 - JQuery 插件

algorithm - 学生积木组合设计

c - If 语句比较开销与赋值开销

c - 按元素索引按升序初始化数组

无法将 char 分配给 char 指针

c++ - 在这种情况下, volatile 限定词重要吗?

matlab - 如何旋转 3D 平面?

Javascript 计算 - NaN 消息

javascript - 根据给定的坐标、宽度和高度查找矩形顶点