关于C语言的简单问题.............

来源:百度知道 编辑:UC知道 时间:2024/05/14 10:05:50
(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
我想知道运算步骤是什么样子的,为什么会得这个结果,(int)是什么意思?
+++分
3%2 为什么=1

(int)是取整数部分
第一题:

2.5 + 7%3*(int)(2.5+4.7)%2/4
=2.5 + 1*7%2/4
=2.5 + 1/4
=2.5 + 0
=2.5

第二题:
(float)(2+3)/2 + (int)3.5 % (int)2.5
=5.0/2 + 3%2
=2.5 + 1
=3.5

------------------
补充:
3%2=1是因为%是“取余”运算符,就是求余数。3/2 = 1余1 所以是1

(int)是把(x+y)的float型转换为int型
你想知道过程最好自己试试
把那个长的式子分开 然后每一小块打印出来你就能知道具体的过程是什么了
靠别人说是没用的

3/2的余数

(1)(int)是强制转换为整型,(int)(x+y)将x+y强制转为整型
x+a%3*(int)(x+y)%2/4
=2.5+7%3*7%2/4
=2.5+1*7%2/4
=2.5+1/4
=2.5+0=2.5
(2))(float)(a+b)/2+(int)x%(int)y
=5.0/2+3%2
=2.5+1
=3.5

(int)x是将x强制转换为整型

%是取模,取余运算符
3%2就是3除以2的余数