帮忙解释下这道C语言题为什么最后结果是20?

[复制链接]
查看11 | 回复3 | 2009-7-3 17:26:02 | 显示全部楼层 |阅读模式
int a=0,y=10; 赋值if(a=0)y--; 如果a是0那么y自己减1即是9else if(a>0)y++; 如果上面的条件不符合那么在a>0的时候y自己+1即11else y+=y; 如果以上2个条件都不符合那么 y = y+y即自己+自己然后在给自己此时y=20printf("%d",y);打印y的值这样注释明白了吗?
回复

使用道具 举报

千问 | 2009-7-3 17:26:02 | 显示全部楼层
if(a=0)不是if(a==0),它是让a=0,再判断a是否为真,0当然是假,所以跳到elseif(a>0),因为a为0了,所以不成立,再跳到下个else执行y+=y,就是10+10=20了
回复

使用道具 举报

千问 | 2009-7-3 17:26:02 | 显示全部楼层
if(a=0)出错了,应该是if(a==0)的吧
回复

使用道具 举报

千问 | 2009-7-3 17:26:02 | 显示全部楼层
if(a=0)相当于a=0;if(a)y=y-1,而a的值为0所以跳过这个if,下个if也一样a是0不满足大于0,这时y任然是10,然后直接y+=y;即y=y+y,这时y等于20~tanyuguo和我意见一样~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行