秉着不懂就要问的原则,问个超级初学者的有关问题

秉着不懂就要问的原则,问个超级菜鸟的问题!
前天开始学C,看的实在头大,按照书后的问题做个练习,原题是这样的:
求以下算术表达式的值。
设x=2.5,a=7,y=4.7; x+a%3*(int)(x+y)%2/4等于多少?

我就顺便写个简单的C程序如下:
#include<stdio.h>
main()
{
int a=7;
float x=2.5,y=4.7;
printf("%d\n",x+a%3*(int)(x+y)%2/4);
}
用VC++6.0编译没问题,最后得到的结果是0 但是这个式子怎么看都不会等于0,我就不知道这个0是怎么得出来的,可能是我写的C程序有问题或是什么其他的问题,不过还是希望大家能帮我指出问题,先在这谢谢啦!

------解决方案--------------------
探讨

用d%显示浮点数为什么是等于0?这个d%是把最后得到的值去小数得整,还是最后得到的值一定为整型,否则语句错误或是最后得到0?如果的第一种情况那就不是0,如果是第二种我就能知道了,再就是按照你说的我把d%改成f%,最后得到的是“2.500000”这个好像也不对,因为右边的a%3*.....不会得到0啊!引用:
你用%d显示浮点数当然是0了,用%f试试~
至于运……