救命啊!!!!!!!1分析下个C程序 基础题
1/2为什么对于0? 它是float 类型啊 又不是整型 不是0。5吗 ?
还有s2的结果为什么是9。000000啊?
main()
{
float a=2,b=4,h=3,s1,s2;
s1=(1/2)*(a+b)*h;
s2=h/2*(a+b);
printf("s1=%f\ns2=%f\n",s1,s2);
}
结果:s1=0.000000
s2=9.000000 为什么?
参考答案:因为立即数默认是整型数啊 - 所以1/2运算结果是0. 你改成1.0/2.0就好了
关于s2, 因为h被声明成浮点类型, 所以就按浮点运算了