do{ switch case‘a':case'A':case'e':case'E':case'i':case'I':case'o':case'O':case’u‘:case'U':v1+=1#includevoid main(){char c;int v0=0,v1=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++

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/24 19:31:01

do{ switch case‘a':case'A':case'e':case'E':case'i':case'I':case'o':case'O':case’u‘:case'U':v1+=1
#include
void main()
{
char c;int v0=0,v1=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++;
default:v0++;v2++;
}
}while(c!='\n');
printf("%d,%d\n",v0,v1);
} 为什么输入ADescriptor回车后
v0=13 v2=12

有两个问题:
第一:default语句中v2未定义(你给的答案里提到了,但是源码中没有的);
第二:主要问题出在switch 语句中的最后一个case'u':case'U':v1++;之后缺少了break;所以程序 执行完该语句后继续执行了default.