| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 556 人关注过本帖
标题:[求助]菜鸟求助2道简单的题
只看楼主 加入收藏
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
结帖率:83.33%
收藏
 问题点数:0 回复次数:5 
[求助]菜鸟求助2道简单的题
1.
main()
{
int a=2,b=-1,c=2;
if(a<b)
if(b<0)c=0;
else c++;
printf("%d\n",c);
}
我算的答案是 3 但是运行结果是2 怎么回事啊?
2.
main()
{
int x=1,a=0,b=0;
switch(x)
{
case0:b++;
case1:a++;
case2:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
我算的是 a=1,b=0 运行结果是 a=0,b=0
2006-02-27 21:55
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

if(a<b)
if(b<0)c=0;
else c++;

是这样的 if(a<b)
if(b<0)
c=0;
else c++;
看明白逻辑关系吗? else 和离它最近的if 匹配


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-27 22:08
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
switch(x)
{
case 0 :b++;
case 1 :a++;
case 2 :a++;b++;
}
以x的值做标号,它是1,所以执行case 1 :a++;
case 2 :a++;b++;
因为你这里没有break;
所以最后a=2,b=1

但你的第二题中case 和后面数字中间没空格,所以一句也不执行,最后结果是两个都是0



叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-27 22:13
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

第一题的教训:适当的缩进很重要在程序里,很容易体现出逻辑关系
第一题的教训:switch 语句中break;很重要 ,case 和标号中间要有空格

谨记


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-27 22:15
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
哦 知道拉
谢谢

羊肉串 葡萄干 哈密瓜!!
2006-03-01 01:46
iyuohz
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2006-2-22
收藏
得分:0 
第一题 C没有变动,直接按原样输出 c=2

第二题 格式



2006-03-01 08:45
快速回复:[求助]菜鸟求助2道简单的题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024274 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved