我正在尝试计算数字的第3个根。
例如,如果 的 N = 8-大于2; 如果n = 27-> 3;
pow函数在平方根(x ^ 0.5)上运行良好,但它不适用于第3根(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;
}
答案 0 :(得分:4)
两个问题:
e
声明为int
,但尝试在其中存储double
值,因此会被截断。您需要将e
声明为double
才能正确存储该值。e
的值不正确。 0.3
与1.0/3.0
不同,因此您的结果将会被取消。请改为使用1.0/3.0
作为此值。答案 1 :(得分: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 :(得分:2)
你必须在这里使用double:
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;
}