我是一名在大学学习 C 语言的初学者,我想知道为什么这段代码总是产生一个随机数,而不是我期望的 1。
代码:
#include<stdio.h>
int main(void){
double a, b = 32.5;
a = 2 / 5 * (b - 30);
printf("%d\n", a);
return 0;
}
当我运行代码时,它每次都会打印出不同的随机值:
-780835368
-1509625304
1267593528
是我得到的一些结果。感谢您的帮助。
最佳答案
您正在调用 undefined behavior通过尝试通过整数格式说明符 %d
打印 double 。请改用浮点说明符:
printf("%f\n", a);
I tired that but it only print 0.000000?
因为 2/5
-- 执行 integer division从而导致 0
。因此,a
被分配给 0
。您可能想要执行真正除法的 2.0/5.0
。
关于c - 双重运算每次在C中产生随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22976121/