A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 每天进步一点点 中级黑马   /  2014-6-12 21:57  /  997 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 每天进步一点点 于 2014-6-13 10:27 编辑

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

怎么做啊这个题????

6 个回复

倒序浏览
首先判断a <b这个条件是否成立,明显不成立,所以执行else ,打印结果是2
回复 使用道具 举报
首先,你要知道else是如何跟If匹配的:else总是跟离他最近的那个If相匹配,也就是这道题加上括号为:
int a=2,b=-1,c=2;
         if(a<b)
       {
                if(b<0)
                    c=0;
                else  c++;
        }
         printf("%d\n",c);
if(b<0)与else c++ 为一对。
然后初始值a=2,b=-1,所以程序没有运行到if判断里面的表达式,所以输出的c值为初始值=2
回复 使用道具 举报
结果是2  ,打断点
回复 使用道具 举报
结果为2,自己可以运行一下就知道了
回复 使用道具 举报

老师讲课说:不执行else语句的,直接跳过去
回复 使用道具 举报
诸葛佰通 发表于 2014-6-12 23:39
首先,你要知道else是如何跟If匹配的:else总是跟离他最近的那个If相匹配,也就是这道题加上括号为:
int a ...

哦,明白了,回答不错,赞一个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马