c语言方面的问题!!!

来源:百度知道 编辑:UC知道 时间:2024/06/05 02:23:37
#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);
}
我总觉得v0v1v2的值应该是一样的,可运行的结果怎么不是啊,不懂!!!!帮帮忙!

这个程序的意思是,输入一个字符串,其中a,e,i,o,u出现的次数存入v1,打印字符总数存入v2,包括转义字符在内,所有的字符个数存入V0

不知道你是怎么运行的...至少这三个数肯定不会相等

当输入的字符不是元音时,v1是不会增加的,所以v1会比v0v2小

这样的提你改用笔在纸上好好画画,很容易就做出来了。。

switch(c=getchar())
这个地方还要加个括号。