运算式里面只要有double的自动都转换成double的做运算,但c因为定义成int类型的了,所以c=a+b 即使a,b都是double或者float类型的,也会强制转换成int,因为c是int的。相当于 c = int(1237.00),c的类型不会变的。
即使你的c声明成float了,c的值也赋对了,但你最后printf的时候因为用的是%d,也一样会输出整数类型,因此要用%f。
简单的办法,可以直接写printf("%f",a+b);就能得到你需要的结果了,c不需要。如果一定要的话,声明成double或者float类型的。
你输出是%d是整型的,当然不可能是浮点型,改成%f就行。
%d是十进制整数的英文所写,不是double的英文。