c - C 中的 Pow() 函数

标签 c double pow math.h

这是我无法弄清楚为什么它不起作用的代码(我总是得到类似 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/

相关文章:

c - 从文件中读取c代码

java - 如何让两个整数的商向上舍入? (5/2)

c# - Visual Studio 如何在调试期间显示 System.Double?

c++ - 如何向量化 pow 函数(带负数)?

c++ - 为什么仅当输入为 5 时才会出现运行时错误?

java - 'const unsigned char *'如何用java的swig包装

c - 如何在链接结构中插入数据

swift - 从双变量中获取小数点后的值

c - 奇异的输出。输出不应该是 153 而不是 152

c++ - C/C++ 按位运算未产生预期输出?