我是一名初学者,在大学学习C语言,并且想知道为什么这段代码总是产生一个随机数,而不是像我期望的那样.
码:
#include<stdio.h>
int main(void){
double a, b = 32.5;
a = 2 / 5 * (b - 30);
printf("%d\n", a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,它每次打印出一个不同的随机值:
-780835368
-1509625304
1267593528
Run Code Online (Sandbox Code Playgroud)
是我得到的一些结果.任何帮助表示赞赏.
您通过尝试通过整数格式说明符打印双精度来调用未定义的行为%d.请改用浮点说明符:
printf("%f\n", a);
Run Code Online (Sandbox Code Playgroud)
我累了,但它只打印0.000000?
因为2 / 5- 执行整数除法从而导致0.因此,a被分配给0.你可能想要2.0 / 5.0哪个执行真正的分裂.
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |