有关c语言的一个题目

题目如下
#include <stdio.h>
void main()
{ int a=2,b=-1,c=2;
if(a<b)
if(b<0) c=0;
else c++;
printf("%d\n",c);
}
求高手解答
给出答案以后 希望还有详细讲解 小弟不胜感激
请问答案为什么是2 不是3呢?

#include <stdio.h>
main()
{ int a=2,b=-1,c=2;//初始化
if(a<b) //如果a<b 那么什么都不做,直接输出c
if(b<0) c=0;//如果b<0那么c等于0,否则c自增1
else c++;
printf("%d\n",c);输出结果,c=2
}

相当于
#include <stdio.h>
main()
{ int a=2,b=-1,c=2;//初始化
if(a<b) //如果a<b 那么什么都不做,直接输出c
{
if(b<0)//如果b<0那么c等于0,
{
c=0;
}
else //否则c自增1
{
c++;
}
}
printf("%d\n",c);//输出结果,c=2
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-02
结果是2 语句:
if(a<b)if(b<0) c=0;else c++;
意思是在a<b 并且b<0时c=0; 如果 a<b但是b>=0 c自加1;
这里 int a=2,b=-1,c=2; a>b并且b<0 不符合if(a<b)if(b<0)的条件。
如果改为if(a>b)if(b<0) c=0;else c++;
那么结果就是c=0;
如果改为if(a>b)if(b>0) c=0;else c++;
那么结果就是c=3;