c语言中,a=1,b=2,c=3;执行printf(%d%d%d%d\n",a=b=c,a=b==c,a==(b=c),a==(b==c))后答案为什么是3100

 我来答
wz610947159
2012-05-11
知道答主
回答量:3
采纳率:0%
帮助的人:4714
展开全部
我来说清楚点把。
1.a=b=c 直接把 c的值赋值给 b,b赋梁神银值给a,即 a=3 b=3 c=3,所以a=3,
2.“==”是表判断,“==”的优先级比“=”高(1.中 b=3 c=3)所以b==c为1,所以 为1,
3.a==(b=c)中 a为1, b=c=3,即 a!=3,所以 为0,
4.第四个一样判断 最后 为0
所以瞎败 答案橡宴是3100
更多追问追答
追问
主要就想看第四个的详细解析。。。
追答
1.运算后得a=3 b=3 c=3
2.运算后得a=1 b=3 c=3
3.运算后得a=0 b=3 c=3
4. 代入得 0==(3==3) 得0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3714041
2012-05-11 · TA获得超过520个赞
知道小有建树答主
回答量:952
采纳率:0%
帮助的人:515万
展开全部
楼上说的都有道理。
最佳答案是这个:
我来说清楚点迹此把。
1.a=b=c 直接把 c的值赋值给 b,b赋值给a,即 a=3 b=3 c=3,所以a=3,
2.“==”是表判断,“==”的优稿州返先级比“=”高(1.中 b=3 c=3)所以b==c为1,所以 为1,
3.a==(b=c)中 a为1, b=c=3,键饥即 a!=3,所以 为0,
4.第四个一样判断 最后 为0
所以 答案是3100

然后说一点,输出数字的时候要习惯中间用,或者空格。
比如
printf("%d\n%d\n%d\n%d",a,b,c,d);
printf("%d,%d,%d,%d",a,b,c,d);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Allen_Program
2012-05-11
知道答主
回答量:37
采纳率:0%
帮助的人:21.5万
展开全部
a==(b==c)是将b和拍判c比较,相等为袭晌改1,否则为0. (b==c)结果为0.然后0再和a比较,谨模不相等 结果为0
更多追问追答
追问
(b==c)结果为什么是0,前面不是把将c的值赋给b,应该是1啊????
追答
b = c,这叫赋值,b == c,这叫比较
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mushao999
2012-05-11 · TA获得超过279个赞
知道小有建树答主
回答量:109
采纳率:0%
帮助的人:90.1万
展开全部
printf函数要先对各卜带表达式进行计算,再输出。对于不同的编译腔弊升系统计算顺序不同。你的编译系统应该是从右往左伍老计算。满意请给最佳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
暴躁甜BR661
2012-05-11 · TA获得超过626个赞
知道小有建树答主
回答量:492
采纳率:0%
帮助的人:405万
展开全部
3100要分开来看 a=3 a=1 a=0 a=0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式