为什么即使使用 %f pow 也输出 0?

Why does pow output 0 even when using %f?

我是 c 的新手,所以我在学习教程时尝试使用 pow 函数。在教程中(我完全按照他们编写的代码进行操作),他们的输出是正确的,但我得到的只是 0.000000。有谁知道为什么会这样?

#include <stdio.h>
#include <stdlib.h>

int main() {

    printf("%f", pow(4, 3));



    return 0;
}

输出

0.000000

插入 #include <math.h>,在编译器中打开警告,注意警告消息,并将警告升级为错误。

如果没有 <math.h>pow 不会被声明,并且 pow(4, 3) 将参数作为 int 传递。 pow 需要其参数作为 double 传递,当它们作为 int 传递时的行为未由 C 标准定义。此外,pow 的 return 类型将被假定为 int,但实际的 return 类型为 double,并且函数调用的行为为这种不匹配也没有定义。并为 %fprintf 转换传递 int 值也具有 C 标准未定义的行为。

如果你在 linux 工作并且你想插入 #include <math.h> 不要忘记用 -lm 编译到 link 数学库。

顺便说一句,如果您想使用浮点数,请尝试使用 powf

语法:float powf(float___x,float___y);.