C语言帮我解题?不是难题!!

来源:百度知道 编辑:UC知道 时间:2024/05/29 18:51:05
当a=2,b=a,c=5,d=4时,执行下面一段程序后,x的值是____.
if(a<b)
if(c>d)x=1;
else if(a<c)
if(b>d)x=2;
else x=3;
else x=6;
else x=7;
我被这道题搞乱了,请高手给详细指点一下!马上给分!!

x是7 ,写成这样就容易看了,我打空格没有显示,就用划线代表空格了。^_^

if(a<b)
----if(c>d)
--------x=1;
----else
-------if(a<c)
---------if(b>d)
------------x=2;
---------else
------------x=3;
-------else
---------x=6;
else
----x=7;

x=7, 其实中间不用理它,第一个IF不成立,所以直接跳到最后一个ELSE,所以X=7,中间的不成立.你分析一下就会发现,第一个IF是与最后一个ELSE匹配的.
if(a<b)
if(c>d)x=1;
else if(a<c)
if(b>d)x=2;
else x=3;
else x=6;
else x=7;
每一个IF与它上面垂直对应的ELSE对应,这样看才能看清楚.

x=7;
简单的方法是将它编成程序,一运行就知道结果了。
程序如下:
main()
{int a,b,c,d,x;
a=2;
b=a;
c=5;
d=4;
if(a<b)
if(c<d) x=1;
else if(a<c)
if(b>d)x=2;
else x=3;
else x=6;
else x=7;
printf("x=%d",x);
}
具体的解释:
if(a<b)
if(c<d) x=1;
在a<b的条