为什么pw(n,2)在n=5时用我的编译器和操作系统返回24?#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){
int n,i,ele;
n=5;
ele=pow(n,2);
printf("%d",ele);
return 0;}输出是24.我在代码:块中使用GNU/GCC。怎么回事?我知道pow函数返回double,但是25适合于int类型,所以为什么这段代码会打印24而不是25?如果n=4; n=6; n=3; n=2;代码起作用了,但对五种情况却不起作用。
3 回答
慕慕森
TA贡献1856条经验 获得超17个赞
ele=(int)(0.5 + pow(n,2));/* ^ ^ *//* casting and rounding */
拉丁的传说
TA贡献1789条经验 获得超8个赞
pow()
int
<math.h>
-Wfloat-conversion
-Wall -Wextra
pow()
- 3 回答
- 0 关注
- 483 浏览
添加回答
举报
0/150
提交
取消