【问题标题】:C - printf with pow function issueC - 带有 pow 功能问题的 printf
【发布时间】:2021-03-19 17:00:36
【问题描述】:

我正在尝试学习一些 C 语言,但遇到了一个我无法解决的问题。看起来很简单,但以下不起作用。

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

int main() {

    printf("%f", pow(4, 3) );
    return 0;
}

错误:

Implicitly declaring library function 'pow' with type 'double (double, double)'

我将字符串格式化程序设置为浮动,所以我不确定为什么会看到该错误

【问题讨论】:

  • #include &lt;math.h&gt;
  • 哪个头文件包含 pow 函数的函数原型?
  • 这不是错误,而是警告。您仍然可以运行可执行文件
  • C 教程要非常小心,其中很多真的不值得花时间。随时准备好high-quality reference book 来验证您所学的任何内容。
  • @Dock,无论是警告还是错误,在大多数编译器中都是可配置的。我们中的许多人会将其视为错误。

标签: c printf


【解决方案1】:

包含库#include &lt;math.h&gt; 并将printf("%f", pow(4, 3) ) 行更改为printf("%lf", pow(4, 3) ) ,因为pow() 返回双精度

【讨论】:

  • %f 可以用于打印中的double
  • @EricPostpischil +1
【解决方案2】:

pow() 位于 math.h 头文件中。
应使用double 的格式说明符。

https://www.programiz.com/c-programming/library-function/math.h/pow

【讨论】:

  • 格式说明符有什么问题? printf 期望 double 参数为 %f
  • 我错误地评论(删除)应该使用%lf,但那是scanf()%fprintf() 很好,float 被提升为double
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多