c语言强制类型转换问题

谁告诉你的?还是自己测试的?什么环境,什么版本的编译器?

据我所知,并且根据我的测试,两种情况下的输出都应该是0.0000000。

因为你的A被定义为int类型,所以1/a和1/2没有区别。计算结果都是0.5然后四舍五入,就变成了0.0。如果定义为double类型,则为0.5。换算成double是0.5吗?

在一般的C语言中,如果要用浮点数计算整数,需要加一个小数,比如1/2,要改成1.0/2。这样中间过程会用到浮点数,结果是0.500000。