刚学C语言求大神帮忙!
#include <stdio.h>main()
{
char c;
int v0 = 1,v1 = 0,v2 = 0;
do{
switch(c=getchar())
{
case 'a':case 'A':
case 'e':case 'B':
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);
}
键盘输入ADescriptor<CR>(<CR>表示回车)
结果为什么是v0=13,v1=4,v2=12?我算的答案v0=12,v1=4,v2=11;求大神帮忙!解答越详细越好!
本帖最后由 my_angel 于 2013-10-20 23:33 编辑
学弟 发表于 2013-10-20 23:24 static/image/common/back.gif
的ASC码是10?循环控制语句里不是‘\n’吗?
初始值 输入ADescriptor 输入<CR> 终值
v0 1 +11 +1 13
v1 0 +4 +0 4
v2 0 +11 +1 12
建议学学单步调试。。很简单的
这个是do...while的用,他是先执行一遍括号里的代码,再进行while判断,所以default语句是被执行了13次 同上。。。 JJ张彬华 发表于 2013-10-20 21:49 static/image/common/back.gif
这个是do...while的用,他是先执行一遍括号里的代码,再进行while判断,所以default语句是被执行了13次
只输入了11个字符,先执行一遍括号里的代码也是12次啊!为什么是13次啊! my_angel 发表于 2013-10-20 22:42 static/image/common/back.gif
同上。。。
大哥不要同上好吗,可以说仔细点吗?跪谢! 学弟 发表于 2013-10-20 23:05 static/image/common/back.gif
大哥不要同上好吗,可以说仔细点吗?跪谢!
因为最后一个输入<CR>在判断前也执行了一次循环体。。这么说明白了吗? my_angel 发表于 2013-10-20 23:21 static/image/common/back.gif
因为最后一个输入在判断前也执行了一次循环体。。这么说明白了吗?
<CR>的ASC码是10?循环控制语句里不是‘\n’吗? my_angel 发表于 2013-10-20 23:30 static/image/common/back.gif
初始值
v0 1
v1 0
哥这什么意思啊? 学弟 发表于 2013-10-20 23:31 static/image/common/back.gif
哥这什么意思啊?
看上面。。。 my_angel 发表于 2013-10-20 23:36 static/image/common/back.gif
看上面。。。
明白了!跪谢! 你搞笑了,v1初始都为1当然要比v2多一次了
页:
[1]