c/c++语言开发共享没有math.h的对数计算

我正在尝试用泰勒系列计算ln(x)。 这是我的代码:

#define N 10 float ln(float x){ int i; float result; float xt; float xtpow; int sign; if(x > 0 && x <= 1){ xt = x - 1.0; sign = -1; xtpow = 1.0; result = 0; for(i = 1 ; i = 1) { return -1 * ln(1.0 / x); } return result; } 

问题出在我的系列循环中(见上文)。 似乎在1个周期后变量i变为等于N + 1 ,并且在它之后没有任何事情发生。 你知道为什么会有这样的想法吗?

    似乎在1周期后变量i变为等于N + 1

    删除; 在for循环之后:

     for(i = 1 ; i < N + 1; i++ ); ^ 

    你的循环继续执行而不执行在for循环之后放入大括号{ }块中的代码,并且for循环只增加i直到循环中断。 在循环代码块(您在其中注释“问题在这里”)之后,以i = N + 1值执行。

    我不确定,但我对if()条件表达式有另外的疑问。 您的代码模式类似于:

      if(x > 0 && x <= 1){ <-- "True for x == 1" // loop code } else if(x >= 1){ <-- "True for x == 1" // expression code here } 

    所以对于x == 1其他代码永远不会执行。 检查此代码。

      以上就是c/c++开发分享没有math.h的对数计算相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/560113.html

      (0)
      上一篇 2021年1月27日
      下一篇 2021年1月27日

      精彩推荐