help!!!关于C语言

来源:百度知道 编辑:UC知道 时间:2024/06/03 22:10:14
main()
{ double d=3.2; int x,y;
x=1.2; y=(x+3.8)/5.0;
printf("%d \n", d*y);
}
为什么结果是0,具体怎么来的。y计算不是等于1么而d=3.2,计算结果应该是3啊!高手解释一下,谢谢啦!

错误在这里
x=1.2;
你前面已经指定类型 int x,y了
所以x是int类型 你给他1.2 但他自动会转换成1
y=1+3.8/5.0当然就等于0了(因为4.8/5=0)
最后输出 printf("%d \n", 3.2*0); 当然就是0了

x和y都是int
所以
x=1.2后 x的值是1
y=(1+3.8)/5.0 = 0.96取整为0

所以结果为0

注意看变量的类型啊

哈哈,你被它骗了啊!

x=1.2
但是X是int型的,所以在表达式:
y=(x+3.8)/5.0;
x有效值为1
所以y=4.2/5.0=0 y也是int型。
y为零,所以后面输出d*y也是零了啊