回 帖 发 新 帖 刷新版面

主题:[讨论]这条多分知选择语句怎么算啊,大家教下我好嘛,我看不懂


#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个回复)

沙发

当你输入回车时,每输入一个字符(包括回车)都执行一次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');

我来回复

您尚未登录,请登录后再回复。点此登录或注册