一个简单的C语言算法问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 17:15:26
设X=3.5,a=7,y=4.7
求x+a%3*(int)(x+y)%2/4
关键是(int)(x+y)%2/4这部分怎么算的?
另外想拜个C语言高手为师
就是为了3月底的计算机三级考试而已
愿意的报名
有分加噢

x与y为实数,应为float型数据,(int)(x+y)是将x+y的值强制转换成整形数据,这里x+y=8.2,然后强制转换成x+y=8,然后用2来整除它,得出的余数再除以4,因为(int)(x+y)%2的值为0,所以(int)(x+y)%2/4的结果为0,整个式子的值为:x+a%3*0 = x+0= 3.5 如回答得不周详请原谅

先算x+y 是8.2 ,然后算(int)8.2 是8;
这时候就是:x+a%3*8%2/4 这个先乘除后加减,后面部分先算是:
7%3 = 1;1*8 = 8 ; 8%2 = 0 ; 0/4 = 0;所以结果就是3.5

x,a,y分别是什么类型的变量,没说明白呢

(int)(x+y)%2/4运算是先算括号两面的+,得到值后再取整;%和/的运算级相同,自左往右计算。

至于具体的值,取决于x,y的类型。

你之前也问了个差不多的题嘛```

这个题一样的道理`结果为3.5

1, 3.5+7%3*(int)(3.5+4.7)%2/4
2, 3.5+1*8%2/4
3, 3.5+0
4, 3.5

结果为0