我正在用 C 语言编写一个函数,用于求数字的根,我偶然发现了一个问题:它对于正数的立方根和平方根非常有效,但是当我尝试求负数的立方根时数字,返回:-1.#IND00 我尝试研究,结果发现返回的数字太大,但我不明白为什么...... ('rooter' 是函数,x 是被数,ind 是度数。)
我还尝试输入“0.66”而不是 1/ind,但出现了相同的结果。
float rooter(int x, int ind)
{
if(ind%2==0)
{
if (x>=0)
return ( pow(x, 1.0/ind) );
else
errore=1;
return -1;
}
else
{
return ( pow(x, (float)1.0/ind) );
}
}
最佳答案
pow不接受非整数指数的负基数。 (可能是因为在传统上定义的特殊情况下工作太繁重,特别是当它预计使用对数实现时。)
关于c - 为什么这段代码不计算负数的立方根?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58770730/