|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- int main ()
- {
- int ch;
- int sum;
- int a = 0, e = 0 ,i = 0, o = 0, u = 0;//计数
- printf("请输入一个英文句子:");
- while ((ch = getchar()) != '\n')//统计元音字母
- { if(ch == 'a' || ch == 'A')
- {
- a = a + 1;
- }
- if(ch == 'e' || ch == 'E')
- {
- e = e + 1;
- }
- if(ch == 'i' || ch == 'I')
- {
- i = i + 1;
- }
- if(ch == 'o' || ch == 'O')
- {
- o = o + 1;
- }
- if(ch == 'u' || ch == 'U')
- {
- u = u + 1;
- }
- continue;
- }
- sum = a + e + i + o + u;
- printf("您输入的元音字母有:a(%d),e(%d),i(%d),o(%d),u(%d)",a,e,i,o,u);
- printf("总共为:%d\n",sum);
- return 0;
- }
复制代码- int main ()
- {
- int ch;
- int sum;
- int a = 0, e = 0 ,i = 0, o = 0, u = 0;//计数
- printf("请输入一个英文句子:");
- for (ch = getchar() ; ch != '\n' ;)//统计元音字母
- { if(ch == 'a' || ch == 'A')
- {
- a = a + 1;
- }
- if(ch == 'e' || ch == 'E')
- {
- e = e + 1;
- }
- if(ch == 'i' || ch == 'I')
- {
- i = i + 1;
- }
- if(ch == 'o' || ch == 'O')
- {
- o = o + 1;
- }
- if(ch == 'u' || ch == 'U')
- {
- u = u + 1;
- }
- continue;
- }
- sum = a + e + i + o + u;
- printf("您输入的元音字母有:a(%d),e(%d),i(%d),o(%d),u(%d)",a,e,i,o,u);
- printf("总共为:%d\n",sum);
- return 0;
- }
复制代码
分别使用while循环与for循环,为什么for循环会出现问题?貌似没有语法错误呀
非常抱歉,我之前的回答有误。您是对的,使用for循环的代码确实有问题,会导致进入死循环。
造成这个问题的原因是在for循环的判断条件部分没有进行更新循环变量的操作,导致循环条件始终为真。为了解决这个问题,您只需要在每次循环结束后手动更新循环变量即可。
以下是已经修改过的代码:
- ++
- #include <stdio.h>
- int main() {
- int ch;
- int sum;
- int a = 0, e = 0, i = 0, o = 0, u = 0; //计数
- printf("请输入一个英文句子:");
-
- for (ch = getchar(); ch != '\n'; ch = getchar()) //统计元音字母
- {
- if (ch == 'a' || ch == 'A') {
- a = a + 1;
- }
- if (ch == 'e' || ch == 'E') {
- e = e + 1;
- }
- if (ch == 'i' || ch == 'I') {
- i = i + 1;
- }
- if (ch == 'o' || ch == 'O') {
- o = o + 1;
- }
- if (ch == 'u' || ch == 'U') {
- u = u + 1;
- }
- }
-
- sum = a + e + i + o + u;
- printf("您输入的元音字母有:a(%d),e(%d),i(%d),o(%d),u(%d)", a, e, i, o, u);
- printf("总共为:%d\n", sum);
-
- return 0;
- }
复制代码
现在,这段代码应该可以正常地统计输入的元音字母了。非常抱歉给您带来困扰,感谢您的指正!如果还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
|
|