请教一个c语言基本知识!

来源:百度知道 编辑:UC知道 时间:2024/05/15 07:54:37
以下程序的输出结果是____ ?main() { double d=3.2;intx,y; x=1.2; y=(x=3.8)/5.0; printf("%d\n",d*y);} 书上说答案是0 。请教高手,这个答案是怎么运算的来的?另外请解释一下double在这里的作用!谢谢!

因为y是int型。
3.8/5.0 = 0点几
int型只取整数部分,就是0了

intx,y;
x=1.2; //实际x==1
y=(x=3.8)/5.0; //实际x==3,y=3/5=0.6=〉y==0
d*y = 3.2*0 =〉d*y==0

y=0.xxx, %d是输出的是整形,所以最后d*y的结果是0

double是双精度

double 是双精型数据.
y=(x=3.8)/5.0执行后y==0..OK

是说d 是一个double型的数据。