运行结果为什么是这样

来源:百度知道 编辑:UC知道 时间:2024/07/07 18:10:54
#include <stdio.h>
void main()
{
float x=2.5,y=4.7,z;
int a=7;
z=a%3*(int)(x+y)%2/4;
printf("%f\n",z);
printf("%f\n",a%3*(int)(x+y)%2/4);
}

运行结果:
0.000000
8.000000

为什么不一样呢?
没看错,我很确定,戴着眼镜盯着看,它还是那个结果,用TC2.0调的。
如果把那一句改成这样就OK了:
printf("%f\n",(float)(a%3*(int)(x+y)%2/4));

谁能解释一下原来那样为什么不行呢?
而且如果不加(float),即使改成:
printf("%f\n",a);
结果都还是8.000000

这个你看花眼没
两个都该是0.000000

不可能啊 我运行了 都是0啊 。。。。

#include <stdio.h>
void main()
{
float x=2.5,y=4.7,z;
int a=7;
printf("%f\n",a%3*(int)(x+y)%2/4);
z=a%3*(int)(x+y)%2/4;
printf("%f\n",z);
}
试试!

结果是一样的呀,是你看错了吧,我也运行了的结果是0哦