help!!!c语言

来源:百度知道 编辑:UC知道 时间:2024/06/13 22:44:19
main()
{ double d; float f; long l; int i;
i=f=1=d=20/3;
printf("%d %ld %f %f \n", i,l,f,d);
}
输出结果(小数点后只写一位)是6 6 6.0 6.0,而不是6 6 6.7 6.7呢,请帮忙解释一下,谢谢。

20/3 int/int=int;所以20/3得到的结果为6..不存在四舍5入,有小数就舍去

所以输出
6 6 6.000000 6.000000

不同数据类型之间的运算要做转换,由小字节类型转为大字节类型,
如:int/float,,这里的int要转为float之后再运算.

20/3 是整数除法。
20/3.0 或 ((float)20)/3
就会有小数结果。