第1个回答 2009-01-09
a=3;b=2;c=2;
因为if后面没有加{},所以它的范围只到它下面的第一个分号就结束了,,所以当a=1;c=3时a>c就不成立,所以跳过了b=a。。。然后再执行a=c,所以a的值是3。。。再执行c=b,所以c的值是2。。。b没有被赋值,所以b的值是2。。。
第2个回答 2009-01-09
if(a>c) 后面的语句要有2条或2条以上,就需要用大括号括起来。
现在看来是没括,那就是说后面只有一条语句b=a;为分支结构所用
剩下的两条顺序执行就可以。
所以:a=1,b=2,c=3;时a>c 不成立。跳过b=a;
顺序执行a=c;c=b;
结果:a=3,b=2,c=2;
第3个回答 2009-01-09
if(a>c)
b=a;a=c;c=b;
相当于
if(a>c)
b=a;
a=c;c=b;
因为b=a;a=c;c=b;未被{}包括,所以if条件句只起作用至b=a;后(第一个分号后)。
------------------------------------
因此:
a=3
b=2
c=2
第4个回答 2009-01-09
你上面的语句,其实IF语句的主体只有一句,就是 b=a;
如果是上面的意思,那结果将是:a=3 b=2 c=2
如果你的意思是这样的:
if(a>c)
{b=a;a=c;c=b;}
那么a b c的值一点都没有变,因为a>c不成立。本回答被提问者采纳