2016-03-02 22 views
1

我正在嘗試計算數字的第3個根。如何計算C++中的第3個數字根

例如,如果 n = 8-> 2;如果n = 27-> 3,則爲 ;

pow函數在平方根(x^0.5)上工作良好,但它不能在第三根(x^1/3)上工作,爲什麼?

#include <iostream> 
#include <math.h> 

using namespace std; 

int main() { 
    int e = 0.3; 
    double k; 
    cout << "Enter k:" << endl; 
    cin >> k; 
    k = pow(k, e); 
    cout << "The result of k^1/3 " << k << endl; 
    return 0; 
} 
+6

你已經聲明Ë作爲int,並賦予它的值0.3(3/10)(其將被施放到0),而不是1/3 – Ben

+3

'.3'不等於1.0'/3'。 – jxh

+1

http://stackoverflow.com/questions/18103769/how-can-i-obtain-the-cube-root-in-c –

回答

4

兩個問題:

  • 您聲明eint,但嘗試存儲在它double值,所以它被截斷。您需要聲明edouble以正確存儲該值。
  • 您使用的值爲e的值不正確。 0.31.0/3.0不一樣,所以您的結果將會關閉。改爲使用1.0/3.0代替此值。
2

您已將整數指數聲明爲整數,因此它將始終指定爲零。宣佈它是一個雙。

裏面你的主要嘗試

double e = 1.0/3.0; 
double k; 
cout << "Enter k:" << endl; 
cin >> k; 
k = pow(k, e); 
cout << "The result of k^1/3 " << k << endl; 
return 0; 
2

你有雙在這裏使用:

double e = 1./3.; 

的不是int。

#include <iostream> 
#include <math.h> 
using namespace std; 

int main() { 
    double e = 1./3.; // <- this line is changed! 
    double k; 
    cout << "Enter k:" << endl; 
    cin >> k; 
    k = pow(k, e); 
    cout << "The result of k^1/3 " <<k << endl; 
    return 0; 
} 
相關問題