新手请教,C语言中为什么if if else的嵌套语句中,执行了第一个if第二个会不执行?(输出的答案是2)

#include <stdio.h>
{
int a=2,b=-1,c=2;
if(a<b)
if(b<0) c=0;
else c+=1;
printf("%d",c);
}

第1个回答  2012-12-11
因为第一个if条件不满足,不能执行里面嵌套的第二个if
第2个回答  2012-12-11
else总是最近匹配的

你多写一对括号就明白了

#include <stdio.h>
{
int a=2,b=-1,c=2;
if(a<b){
if(b<0) c=0;
else c+=1;
}

printf("%d",c);
}本回答被网友采纳
第3个回答  2020-08-19
else总是与最近的if匹配,因为第一句if(a<b)不成立所以直接跳过下面的if-else语句,输出c等于2没变
第4个回答  2012-12-11
因为第一个没执行。
第5个回答  2012-12-11
#include <stdio.h>
int main(void)
{
int a=2,b=-1,c=2;
if(a<b)
{
if(b<0)
c=0;
else
c+=1;
}
printf("%d",c);
}