c语言计算题如题?

设intx=2,执行表达式x-=x+=x=x*x后,x的值为设x=10,执行表达式x/=x+x后,x的值为第一个结果为什么是0,解释一下... 设int x=2,执行表达式x-=x+=x=x*x 后,x 的值为
设x=10,执行表达式x/=x+x后,x的值为
第一个结果为什么是0,解释一下
展开
 我来答
microroom
科技发烧友

2020-06-30 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1644万
展开全部
第一个是0,是因为最后一步是计算x-=(x+=x=x*x);而(x+=x=x*x)的计算结果就是x。所以,原式等同于x-=x;即x=x-x;
x最后等于0。
追问
为什么x+=x=x*x的结果是x不是自右向左运算吗
追答
最后算复合赋值x+=...,而x+=...,等同于x=x+...,结果当然是x。
syht2000
高粉答主

2020-06-30 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
第一题连等计算顺序是从右到左,所以x-=x+=x=x*x相当于
x=x*x;
x+=x;
x-=x
无论前面是什么,最后一步的x-=x即x=x-x;都会将x设为0
第二题x/=x+x相当于x=x/(x+x),即10/20,两整数相除还是整数,结果也为0
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友501c300
2020-06-30
知道答主
回答量:5
采纳率:100%
帮助的人:1.2万
展开全部

您好

赋值运算符{=、+=、-=、*=、/=、%=等}都是“右结合性”,从右向左依次进行运算。

拆解原式:X= X - X = X + X = X * X

X的初值为2

 (1).X = X * X   为  X = 2 * 2,X 的值为 4

(2).X = X + X 为 X = 4 + 4,X的值为 8

(3).X = X - X 为  X = 8 - 8,X的值为  0 

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式