C语言中问题 小弟跪求解答过程

来源:百度知道 编辑:UC知道 时间:2024/05/27 19:23:53
高人 我有2个题怎么算都和答案不一样 ?你帮我看看哦

x+a%3*(int)(x+y)%2/4
设x=2.5 a=7 y =4.7

答案是2.5 我怎么算都不是 你帮我看看

还有一个就是a=12 a定义为整型变量 那么
a/a+a 求运算后的a
答案给的是0

x+a%3*(int)(x+y)%2/4

先看优先级,括号高,所以先算括号里的
(int)(x+y)就是把x+y的值强制转化为整形,就是把小数都去掉,结果为7
7余2为1,1除4为0,因为是整形的。
所以(int)(x+y)%2/4 值为0,所以a%3*(int)(x+y)%2/4值为0,所以结果为x,就是2.5

a/a+a 相当于a/(a+a)
因为是整形,所以为0

不知道

按优先级算会先算a%3结果是0,那么后面的都为0了+2.5就=2.5。第二个你没给出代码不好说

1、一步一步给你写下去:
a=7,a%3=1
2.5+1*(int)(x+y)%2/4
(int)(x+y)=(int)(7.2)=7
2.5+1*7%2/4
2.5+7%2/4
7%2=1
2.5+1/4
关键在这里了:1和4都是整数,那么1/4也应该得到一个整数,所以1/4=0
2.5+0=2.5

2、你这个题目我没看懂 再说明白下

1,关键点是(int)(x+y)=7,(int)(x+y)%2=1,(int)(x+y)%2/4=0,所以a%3*(int)(x+y)%2/4 =0,x+a%3*(int)(x+y)%2/4 =x=2.5
2,该题有问题,a值不变

看看这个http://hi.baidu.com/vmwares/blog/item/4dfe5a08801c5c940b7b8278.html

第二个问题:
a/a+a 赋值给哪个变量呢?若不赋值给a,不影响a的值。

a/a+a这个式子的值是a的值加1,若a=12,a/a+a这个式子的值就是13.

你看看是怎样的