C ++计算类的Artctan函数

时间:2016-10-23 05:43:45

标签: c++ function class

我必须为Arctan创建一个函数,不使用cmath

公式为ctan(x)= x - x ^ 3/3 + x ^ 5/5 - x ^ 7/7 + x ^ 9/9 - ...

继承我所拥有的,请告诉我为什么它不起作用......

#include <iostream>
using namespace std;


double ArcTan(double x) {

double y = 7;
double specialx = pow(x,y)/y;
double first;
double answer;


first = x - (pow(x, 3.0) / 3.0);
answer = first + (pow(x, 5.0) / 5.0);
answer = answer - specialx;


while (x = x) {

    if (answer == answer - specialx) {

        y += 2;
        answer = answer + specialx;
        return answer;
    }

    if (answer == answer + specialx) {

        y += 2;
        answer = answer - specialx;
        return answer;
}

}
        return answer;

}

2 个答案:

答案 0 :(得分:0)

您确定while循环条件

  

而(X = X)

它不是比较而是分配操作。

即使你在while循环中修复了这个条件,你仍然会处于无限循环状态,好像写入逻辑不会满足条件。

您是否正在寻找解决方案,以便在您粘贴的代码中找到ctan或bug?

答案 1 :(得分:0)

if (answer == answer - specialx)

if (answer == answer + specialx)

永远不会评估为真。

因为例如, 让我们说答案等于5,特殊等于3, 5不等于5 - 3 和 5也不等于5 + 3