这是我无法弄清楚为什么它不起作用的代码(我总是得到类似 0.000000
的结果):
#include <stdio.h>
#include <math.h>
int main ()
{
double num,b;
printf("Write a number between 0 and 256"); scanf("%lf",&num);
num = pow(2.0,b);
printf("%lf",b);
return 0 ;
}
这里,pow的答案被称为num,因为它是由用户引入的,我正在尝试找到b的值 在函数内部!
实际上,我在这里看到了类似的问题,但其中一些问题依赖于gcc的解决方案,(我正在使用Dev C++),其余的则有一个结构略有不同,并且可能由于这种差异而出现问题。
最佳答案
你的意思可能是
b = pow(2.0, num);
在第七行。作为reference说,pow
的原型(prototype)方法是:
double pow (double base, double exponent);
这样你就会得到从给定的参数返回的计算结果。
如果您实际上是在寻找以 2 为底的对数,那么您应该使用对数:
b = log2(num);
这可以在 C99 中使用 <tgmath.h>
工作。标题,或者您可以使用 @SleuthEye 中的解决方案的回答
标题包含也有一个拼写错误,如 @Paul R评论道。
关于c - C 中的 Pow() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29370562/