2016-10-23 46 views
0

我要創建爲反正切的函數WITHOUT使用CMATHC++計算Artctan函數

的公式是CTAN(X)= X - X^3/3 + X^10/10 - 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

你肯定while循環

而(X = X)

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

即使在while循環中修復條件後,仍然會處於無限循環,就好像條件將永遠不會滿足寫入的邏輯。

您是否正在尋找解決方案來查找粘貼的代碼中的垃圾或錯誤?

+0

感謝您的回覆。編號喜歡能夠把它變成一個合適的程序,但如果不是id願意從頭開始,你建議我使用什麼,而不是while循環,我應該使用什麼條件來改變符號? – jtw97

+0

其實我明白你的意思了,應該是x == x吧? Isnt Arctan從代碼看起來應該是無限的?我很困惑,所以任何幫助將不勝感激哈哈 – jtw97

0
if (answer == answer - specialx) 

if (answer == answer + specialx) 

永遠評估是正確的。

因爲例如, 可以說,答案等於5 specialx等於3, 5不等於5 - 3 和 5不等於5 + 3以及

+0

謝謝你的回覆,你會推薦我用什麼來代替條件? – jtw97