c语言 int y=0,x=3; y=++x*++x*++x;

执行之后xy的值为多少。我做出来x的值为6y的值为120,但错了,这是为什么?好心人拜托帮帮忙

执行过程
1、(++x*++x)++x*
运算过程是先运算括号里面的,第一次++x,x=4,第二次++x,x=5
然后运算(5*5)*++x
2、(5*5)*++x时,先运算++x,x=6,此时运算结果为:(5*5)*6
原因程序先运算前++再将计算结果在做运算。
由此等式可以写成[(1+x)*(1+x)]*(1+x)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-15
y=(++x*++x)*++x
而(++x*++x)后x=5,y=25,后面你就知道了吧?
第2个回答  2013-01-16
建议C语言书写更规范点
第3个回答  2013-01-15
x=6,y=150
你看看
相似回答