请教一个C程序的结果及解析!

来源:百度知道 编辑:UC知道 时间:2024/06/06 20:28:36
#include "stdio.h"
main ( )
{
int a=2,b=-1,c=2;

if (a<b)

if (b<0) c=0;
else c+=1;
printf("%d\n",c);
}

相关截图:
自己觉得应该是3啊,为什么运行的结果是2 呢?
http://images22.51.com/6000/ttsunline/ecb1bc7a5a2bc5bb87f7ab6a3c51b73b.jpg
这个是我运行的结果,竟然是2,我不明白 ,你看看我的输入有错误吗?谢谢!

main()
{int a=2,b=-1,c=2;
if (a<b)
{if (b<0) c=0; }
else c+=1;
printf("%d\n",c);
getch();
}
这个的结果就是3...
因为else与最近的if语句配对.即if(b<0)
因为if(a<b)不成立,所以以后的条件判断就不能进行,直接就printf c了
改了后else就和if(a<b)配对,这时他不成立,所以执行c+=1,就是c=3了
这个程序结果是2,没错,代码是对的