c语言中a+=a-=a*a怎么运行

int a=3;

赋值是从右到左运行。

先计算a*a=9,此时a=3,没变。

然后计算a-=9,此时a=-6,a值改变。

最后计算a+=-6,a=-12。a的最终值为-12。

更多的详细资料请参考运算符的优先级进行推理:

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-29
先运行a-=a*a;
此时,相当于a=a-a*a;
这个表达式的值是-6,算完了a的值也是-6.
后算a+=(-6),相当于a=a+(-6),算完a的值为-12,表达式的值也是-12.
不明白可以追问。追问

你好 再问下 int a=-11,b=10;
a/=b/=4;
求a b 的值 这个又怎么算。。

追答

同样的,先算b/=4,就是b=b/4,结果是2,
再算a/=(2),就是a=a/2,结果是-5
不要迷信标准答案,可以敲代码运行一下,我在回答别人的问题时都会运行一下,不然有可能误导别人,做编程要严谨。

第2个回答  2013-03-29
你好 再问下 int a=-11,b=10;
a/=b/=4;
求a b 的值 这个又怎么算。。

这个也是现算后面的啊10/4等2(整除)
然后-11/2=-5

如果觉得还行的话给个采纳 谢谢追问

但是答案说是 5 和-2啊。。

追答

不可能,是你写错了吧。。。我去试了一下啊 是-5 和2啊 实在不行你把你代码发上来吧

追问

不用了 谢谢咯

追答

= =! 可以了么?

本回答被提问者采纳
第3个回答  2013-03-29
赋值语句是从有到左运行,先计算a*a=9,记住,此时a=3,没变。a-=9,此时a=-6,a值变化了。
然后计算a+=-6,a=-12.追问

你好 再问下 int a=-11,b=10;
a/=b/=4;
求a b 的值 这个又怎么算。。

追答

先算b=b/4 = 2, 再算a=a/2 =5 a =5,b=2

c语言中a+=a-=a*a怎么运行
a+=a-=a*a;为连续赋值运算,从右向左计算。于是原始的表达式等效于:a-=a*a;a+=a;也就是 a=a-a*a;a=a+a;例如,a=5;那么 a=a-a*a=5-5*5=-20;a=a+a=-20 + (-20)= -40;最终a为-40,表达式整体值也就是a最终值,一样是-40。

c语言中a+=a-=a*a怎么运行
赋值是从右到左运行。先计算a*a=9,此时a=3,没变。然后计算a-=9,此时a=-6,a值改变。最后计算a+=-6,a=-12。a的最终值为-12。更多的详细资料请参考运算符的优先级进行推理:

a+=a-=a*a怎么计算啊
a+=a-=a*a是一个连续赋值运算,计算顺序是自右至左的。如果int a=2;a+=a-=a*a;相当于:1.a-=a*a;2.a+=a;然后相当于:1.a=a-a*a;2.a=a+a;由于a初始化为2:1.a=a-a*a=2-2*2=-2;2.a=a+a=-2+(-2)==-4;所以最后结果就是-4。

c语言 a+=a-=a*=a
c语言中,表达式"a+=a-=a*=a"的等价表达式为"a=a+a=a-a=a*a"。在这个表达式中,"+"和"-"符号表示加法和减法操作,"*"表示乘法操作。值得注意的是,"="符号在c语言中用于赋值操作,它的左边不能是表达式或常量,只能是变量。具体到"a+=a-=a*=a",我们可以依次拆解:首先执行"a*=a...

计算a+=a-=a*a的运行结果是多少?
所以说先执行最右边的表达式,同时乘除运算符的优先级大于赋值运算符,所以说先执行a*a,因为a=3,所以说a*a=9,然后执行a-=(a*a)=a-=(9)等价于a=a-(a*a)=3-9=-6。然后a=-6,然后执行a+=a等价于a=a+a=-6-6=-12。所以说表达式执行完后a的结果为-12。

C语言中a+=a-=a*=a答案是多少?
a初值为12时,a+=a-=a*=a结果为0步骤:这个表达式的运算是从右向左的:1. a*=a:a=a*a=12*12=1442. a-=144: a=a-144=144-144=03. a+=0: a=a+0=0+0=0。

C语言a+=a-=a*=a怎么等于0啊,具体怎么算的,请教高手
+= -= *= 都是复合的赋值运算符,结合方向从右到左,所以要从右到左运算。第一步:执行 a*=a,a变为144 第二步:执行 a-=a,a变为 0 第三步:执行 a+=a,a还是 0

C语言中,a+=a-=a*=a
优先级从右到左 先计算a*=a 再a-=a 最后a+=a

a+=a-=a*a
选C 从右到左进行:第一次运算:a*a=9 第二次运算:a=a-9,此时a的值为3-9=-6,执行第三部运算:a=a+a,因此最后的a为-6(a的值)+(-6)(a的值)=-12

C语言解答 a+=a-=a*a ???\/ 请高手解决 谢谢~·
a+=(a-=(a*a))说明:1.首先a*a,假设b=a*a 2.a-=b,那么a=a-b,也就是a=a-a*a,此时a的值已经改变,设c=a-a*a 3.c+=c,也就是c=c+c=2c=2*(a-a*a)所以可知,那个等式为a=2*(a-a*a)

相似回答