gpt4 book ai didi

c - pow 函数在 Code::Blocks IDE 中无法正常工作

转载 作者:行者123 更新时间:2023-12-01 12:38:27 26 4
gpt4 key购买 nike

我的小辈有一个问题,我无法解决。以下是他在刚刚从 Code::Blocks 的官方网站下载的 Code::Blocks IDE 中使用的代码.

这是一个 hello world 控制台项目,他只是稍微修改了一下,使用了头文件 math.h 并使用了 pow() 函数。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
printf("Hello world! %d\n",pow(2,2));
return 0;
}

这段代码的输出应该是Hello world! 4 对吗?但是瞧,它总是 Hello world! 0 unless 我使用 printf("Hello world!%f\n", pow(2,2)); 这在语法上是完美的,而且做正确的事。但那完全是另一回事了。

当然,Pow 函数应该返回 4,double。那么发生了什么? printf() 工作不正常,或者 pow() 有问题。

最佳答案

pow() 的返回值是double,如您所见:

http://www.tutorialspoint.com/c_standard_library/c_function_pow.htm

所以你必须像这样将返回值转换为 int:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
printf("Hello world! %d\n",(int)pow(2,2));
return 0;
}

否则如你所见输出0!

另一个例子可以证明这一点,你可以试试这个:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
printf("Hello world! %d\n",4.000000);
return 0;
}

正如您将看到的,输出也是 0,因为它是一个 double 值!

关于c - pow 函数在 Code::Blocks IDE 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27333332/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com