C语言 就下面算术表达式的值
1.x+a%3*(int)(x+y)%2/4其中x=2.5,a=7,y=4.72.(float)(a+b)/2+(int)x%(int)y其中a=2,b=3,x=3.5,...
1.
x+a%3*(int)(x+y)%2/4
其中x=2.5,a=7,y=4.7
2.
(float)(a+b)/2+(int)x%(int)y
其中a=2,b=3,x=3.5,y=2.5
大侠们,请把详细过程写下来!
我是菜鸟
请大侠们注意一下, 第一题标准答案:2.5,第二题标准答案:3.5.
但是我不知道过程是怎么来的? 展开
x+a%3*(int)(x+y)%2/4
其中x=2.5,a=7,y=4.7
2.
(float)(a+b)/2+(int)x%(int)y
其中a=2,b=3,x=3.5,y=2.5
大侠们,请把详细过程写下来!
我是菜鸟
请大侠们注意一下, 第一题标准答案:2.5,第二题标准答案:3.5.
但是我不知道过程是怎么来的? 展开
展开全部
1、注意运算符的优先级。括号的优先级最高,%,*,/的优先级相同。(int)是强制类型转换,把int后面的数转换成int型,float同理。
所以计算是:2.5+2%3*(int)(3.5+2.5)%2/4=2.5+2*0/4=2.5
这里2.5+3.5=6.0,6.0被强制转换成int型,变成整数6。
2.先进行强制转换再计算值。
(float)(2+3)/2+3%2=2.5+1=3.5
这里(2+3)被转换成float型,所以(2+3)/2=2.5。
ps:现在c++里强制转换不用这样的形式了,用static_cast<int>(x)这样的形式。
所以计算是:2.5+2%3*(int)(3.5+2.5)%2/4=2.5+2*0/4=2.5
这里2.5+3.5=6.0,6.0被强制转换成int型,变成整数6。
2.先进行强制转换再计算值。
(float)(2+3)/2+3%2=2.5+1=3.5
这里(2+3)被转换成float型,所以(2+3)/2=2.5。
ps:现在c++里强制转换不用这样的形式了,用static_cast<int>(x)这样的形式。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询