当前位置: 代码迷 >> C语言 >> [求助]新手问C语言问题
  详细解决方案

[求助]新手问C语言问题

热度:370   发布时间:2006-09-04 22:11:47.0
[求助]新手问C语言问题
#include<stdio.h>
main()
{
int v1=0,v2=0;char ch;
while((ch=getchar())!='#')
switch(ch)
{
case 'a':
case 'h':
default:v1++;
case '0':v2++;
}
printf("%d,%d\n",v1,v2);
}
上面这个程序如果从键盘上输入china#<回车> 会输出什么结果?
请大家帮忙了 谢谢了啊
最主要是case 的语句标号作用在这个程序里是怎么体现出来的
我可能钻牛角尖了 老是看不出来啊
搜索更多相关的解决方案: C语言  

----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-09-04 14:15:31
nuciewth

来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9791
专家分:183
注 册:2006-5-23
  得分:0 
楼主看书不够仔细吧.
当表达式的值与某一个case后面的常量表达式的值相等时(即比较),就执行case后面的语句,直到break;跳出.
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
int v1=0,v2=0;
char ch;
while((ch=getchar())!='#')
switch(ch)
{
case 'a':
case 'h':
default:v1++; // 你的china前4次执行每次都没有匹配的,所以v1++,可是后面并没 case '0':v2++; 有break,所以v2++,在第5次的时候找到匹配的,与case 'a'匹配之后,可是后面还 没 有 break,,所以继续

}
printf("%d,%d\n",v1,v2);
}
----------------解决方案--------------------------------------------------------
OK 搞明白了 谢谢了
快考试了 时间紧张啊 没办法
----------------解决方案--------------------------------------------------------
我也快考试了,现在感觉还有好多东西没掌握
23号就考B
----------------解决方案--------------------------------------------------------
  相关解决方案