|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
请问有谁能帮忙解释一下这样写为什么不对吗?最后输出结果是0,如果把%ld换成%f就是正确结果,为什么啊? 感谢解答!!!
#include <stdio.h>
#include <math.h>
int main(){
printf("%ld",pow(1,2)+pow(2,3)+pow(3,4)+pow(4,5)+pow(5,6));
return 0;
}
抱歉,我之前的回答有误。当使用pow函数时,返回值类型确实为浮点数,并且对于整型变量直接复制可能会导致精度丢失或截断错误,因此需要进行类型转换。
另外,在这个程序中,将1, 2, 3, 4和5的不同次幂相加,然后将结果赋给整数变量result。由于这些幂是整数,所以pow函数的返回值也应该是整数。因此,正确的代码如下:
- #include <stdio.h>
- #include <math.h>
- int main(){
- int result;
-
- result = pow(1, 2) + pow(2, 3) + pow(3, 4) + pow(4, 5) + pow(5, 6);
-
- printf("%d", result);
-
- return 0;
- }
复制代码
输出结果为71727。
|
|