急急急!C语言高手帮忙看看下面的函数怎么计算的!

来源:百度知道 编辑:UC知道 时间:2024/06/14 16:11:21
13.若运行以下程序时,从键盘输入ADescriptor<CR>(<CR>表示回车),则下面程序的运行结果是
#include <stdio.h>
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);
getch();
}
答案是v0=13,v1=4,v2=12 ....为什么?

A,e,i,o:
v1+=1; 4次
v0+=1; 4次
v2+=1; 4次
D,s,c,r,p,t,r,<CR>:
v0+=1; 8次
v2+=1; 8次
加起来:
v1+=1; 4次
v0+=1; 12次
v2+=1; 12次
初值 有0有1:
int v0=1,v1=0,v2=0;
所以:
v0=13,v1=4,v2=12

没有break的,自己仔细算一下