主题:[讨论]这条多分知选择语句怎么算啊,大家教下我好嘛,我看不懂
wee1244
[专家分:0] 发布于 2012-06-27 18:03:00
#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)
}
回复列表 (共1个回复)
沙发
续写忧伤qcb [专家分:0] 发布于 2012-06-27 20:34:00
当你输入回车时,每输入一个字符(包括回车)都执行一次do里的语句,判断是不是不是 你列的那些字母,如果不是,v0v2直接加1,如果是其中的一个字母v0v1v2都加1.比如输入aeb回车,先判断a:case'a':满足接着往下执行一直到while此时都加1,在判断e,从case e出开始执行一直执行下去,都加了1,b时直接执行default后的,v0v2加1,接着就是回车了,v0v2加1,结果就应该是v0=5,v1=2,v2=4;
其实就相当去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');
我来回复