S1E15课后习题求助(我找不出和答案的不同之处但是我的运行后会死机)
我的代码运行后输入字符敲回车后会死机这是我的代码。答案的在下面
#include<stdio.h>
int main()
{
char ch;
int a,e,i,o,u;
ch=getchar();
while(ch!='\n')
{
a=0;e=0;i=0;o=0;u=0;
switch(ch)
{
case 'a':
case 'A':a++;break;
case 'e':
case 'E':e++;break;
case 'i':
case 'I':i++;break;
case 'o':
case 'O':o++;break;
case 'u':
case 'U':u++;break;
}
}
printf("a %d\ne %d\ni %d\no %d\nu %d\n",a,e,i,o,u);
return 0;
}
这是答案
#include <stdio.h>
int main()
{
char ch;
int a, e, i, o, u;
a = 0;
e = 0;
i = 0;
o = 0;
u = 0;
while ((ch = getchar()) != '\n')
{
switch (ch)
{
case 'a':
case 'A': a++;
break;
case 'e':
case 'E': e++;
break;
case 'i':
case 'I': i++;
break;
case 'o':
case 'O': o++;
break;
case 'u':
case 'U': u++;
break;
}
}
printf("您输入的句子中,包含元音字母%d个!\n", a + e + i + o + u);
printf("其中:a(%d),e(%d),i(%d),o(%d),u(%d)\n", a, e, i, o, u);
return 0;
} 狠简单,你的ch仅仅赋值一次,所以下面的虚拟基本上就是死循环了
而下面的代码的ch却是循环赋值 wp231957 发表于 2021-7-11 17:57
狠简单,你的ch仅仅赋值一次,所以下面的虚拟基本上就是死循环了
而下面的代码的ch却是循环赋值
哦哦while里面的赋值也参与了下面的循环谢谢哈
页:
[1]