当前位置: 代码迷 >> C语言 >> 很冷门的一个问题,关于switch语句的。很难理解。
  详细解决方案

很冷门的一个问题,关于switch语句的。很难理解。

热度:278   发布时间:2008-04-16 17:23:57.0
v0+=1;
  v2+=1;
两句连在一起,也不加{},你真考验编译系统啊!!!
----------------解决方案--------------------------------------------------------
好的,谢谢大家。
其实我以前搞不懂的就是v0为什么不和v2相等。
现在知道了原来两者初值都不一样。太不细心了
真的学到了很多东西
----------------解决方案--------------------------------------------------------
where is "break"?
----------------解决方案--------------------------------------------------------
没有break;所有的case条件都被顺序执行了一次。
----------------解决方案--------------------------------------------------------
学习了~~~
----------------解决方案--------------------------------------------------------
加了break也至少要循环两次呀!怎么修改成输入A 只执行一次?
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<conio.h>

main()
{
char c;
int v0=1,v1=0,v2=0;
c=getchar();
if(c!='\n')
{
  switch(c)
  {
  case 'a':
  case 'e':
  case 'i':
  case 'o':
  case 'u':v1+=1;break;
  default:{v0+=1;v2+=1;}
  }
}  //}while(c!='\n');
  printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
  getch();
}


怎么改成循环的?
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<conio.h>

main()
{
char com;
int v0=1,v1=0,v2=0;
while((com=getchar())!='b')
{
  printf(" %c\n ",com);
  switch(com)
  {
  case 'a':
  case 'e':
  case 'i':
  case 'o':
  case 'u':v1+=1;break;
  default:{v0+=1;v2+=1;}
  }
}  
  printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
  getch();
}

输入的时候不要输入多余的空格或者回车,否则输出结果有错。
比如输入:asder 中间不能有空格或者回车,否则结果和预期不一样
----------------解决方案--------------------------------------------------------
  相关解决方案