求高手解一道C语言问题QAQ

[复制链接]
查看11 | 回复4 | 2012-7-17 22:49:00 | 显示全部楼层 |阅读模式
if(a>c)
b=a;a=c;c=b;相当于if(a>c){
b=a;}a=c;c=b; 你如果想达到你要的效果,你应该if(a>c){
b=a;a=c;c=b;}并不是写在一行就只是一条语句了,if语句不加大括号的话就只能控制一条语句,一个;号是一个语句...
回复

使用道具 举报

千问 | 2012-7-17 22:49:00 | 显示全部楼层
当你的if语句在没加大括号的情况下if语句只会控制后面的一条语句,对于这个题,if条件不成立,所以b=a自然就不会被执行了,而后面的两条语句会成功执行,a和c分别赋予相应的值3、2;而b还是保持原来的值2。理应输出3 ,2, 2。...
回复

使用道具 举报

千问 | 2012-7-17 22:49:00 | 显示全部楼层
判断处不成立,所以b=a不执行.然后a = c = 3c=b=2b还是2...
回复

使用道具 举报

千问 | 2012-7-17 22:49:00 | 显示全部楼层
你注意 你的if语句只能管b=a (如果你是a>c 执行b=a;a=c;c=b;那么是{b=a;a=c;c=b;})首先执行 if里面的判断语句 a>c 不成立,跳过a=b;然后执行a=c现在abc为323然后执行c=b 现在abc为322...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行