C语言中关于IF的问题,求解啊。。

#include<stdio.h>voidmain(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf("%d",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",c);

}
第一个IF先判断,不成立。所以就 else,因此c =3 啊,为什么答案是2呢?
展开
 我来答
kaixingui2012
2015-06-04 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6312万
展开全部
C语言中,else在没有{}的匹配下,总是与离之最液灶近的if相匹配
if(a<b)
if(b<0)
c=0;
else //很明显这里弊梁的else是与 if(b<0)相对应的
c++;
因此, if(a<b) 不闹卜扮成立,结果就是直接输出c,结果为2
wchyumo2011
2015-06-04 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2777万
展开全部
else 和else if在没有括号限定的情况下,咐洞都和最近的if进行匹配,所以else 是if(b<0)的else
由于if(a<衡物枯b)不成立,所以里面的if --else 都不会蚂扒执行到。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Soucula
2015-06-04 · TA获得超过3091个赞
知道小有建树答主
回答量:744
采纳率:93%
帮助的人:67万
展开全部
这样就比皮型桥较清租耐晰了,因为a大于燃猛b所以后面的都不会被执行。
if(a<b)
{
if(b<0)
c=0;
else
c++;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式