#include<stdio.h> main() { char c; int v0=1,v1=0,v2=0; do{ switch(c=getchar()) { case 'a':case 'A':

具体是怎么运行的,流程分析!!

这是 do { ...} while(条件);循环语句。
一开始,进 do {}, 里面是开关语句。switch(c){} . c 由键盘输入getchar()。
如果是 a,e,i,o,u,A,E,I,O,U 之一,则做 v1+=1; 由于没有 break, 还要做 default.
如果不是a,e,i,o,u,A,E,I,O,U 则做default. 部分。不断循环,直到遇到 '\n' 退出循环。

do{}while(c!='\n'); -- c 不等于 '\n' 就要继续循环。遇到 '\n' 退出循环。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-22
你的case写得不对啊,不应该加' '号,你的a就是你的c值,也就是函数c取得一个值是,用case来分类,如果c是等于a,就执行case a的语句,如果c是等于A,就执行case A的语句,否则就是错误,不执行追问

这是一套试题上的,我编译过能执行的,我就是看不懂流程啊
#include
main()
{
char c;
int v0=1,v1=0,v2=0;
do{
switch(c=getchar())
{
case 'a':case 'A':
case 'e':case 'E':
case 'i':case 'I':
case 'o':case 'O':
case 'u':case 'U':v1+=1;
default:v0+=1;v2+=1;
}
}while(c!='\n');
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
}

追答

不对啊,你的题没有输入,并且c也不能取v0=1,v1=0,v2=0;是改错题吧

追问

哦,ADescriptor回车

追答

那知道了吧

追问

不知道怎么分析这个题啊平常没怎么用switch语句

相似回答