|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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 小助理,如未能正确解答您的问题,请继续追问。
|
|