C语言编程模运算符问题求解

来源:百度知道 编辑:UC知道 时间:2024/06/07 05:39:22
我的程序:
main()
{int z,a=12,b=3,n=5;
z=a*n%b;
printf("%d\n",z);}
运行结果怎么是0!
x=2.5,a=7,y=4.7
表达式x+a%3*(int)(x+y)%2/4的值为2.5
我感觉含有"%"号的式子结果都为0 怎么回事

%是求余 60%3可以被整除所以是0

%是求余数的运算符
z=a*n%b;带入数值是z=12*5%3=60%3 60除以3的余数自然是0了
x+a%3*(int)(x+y)%2/4带入数值:
2.5+7%3*(int)(2.5+4.7)%2/4
=2.5+1*(int)(7.2)%2/4 7除以3余数是1
=2.5+1*7%2/4 7.2转为整型是7
=2.5+7%2/4
=2.5+1/4 7除以2余数是1
=2.5+0 整数除以整数结果还是整数(用舍尾法取0.25得0)
=2.5