我必须为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;
}
答案 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