微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决为什么即使在使用 %f 时 pow 也会输出 0?

我对 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 的返回类型将假定为 int,但实际返回类型为 double,并且也未定义具有此不匹配的函数调用的行为。并且为 intprintf 转换传递 %f 值也具有 C 标准未定义的行为。

,

如果您在 linux 中工作并且想要插入 #include <math.h>,请不要忘记使用 -lm 进行编译以链接数学库。

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

语法:float powf(float___x,float___y);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。