请问这个例子如何用for循环写出啦
写一个程序,统计用户输入的字符串中,各个元音字母出现的次数(包含大小写的 a、e、i、o、u)。程序实现如图:
以下是我写的,但是所有值都是0,不知道哪里有问题,希望能给出一点建议
#include <stdio.h>
int main()
{
char ch;
int a=0,e=0,i=0,o=0,u=0;
printf("请输入一个英语句子:");
for (ch = getchar();getchar() != '\n';){
if (ch == 'a' && ch == 'A')
{
continue;
a++;
}
if (ch == 'e' && ch == 'E')
{
continue;
e++;
}
if (ch == 'i' && ch == 'I')
{
continue;
i++;
}
if (ch == 'o' && ch == 'O')
{
continue;
o++;
}
if (ch == 'u'&& ch == 'U')
{
continue;
u++;
}
}
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;
}
continue后面的部分是不执行的 先计数再continue........ continue这句语句执行后就退出当前循环进入下一个循环,你后面那句++就不会执行,所以就全都是0了,把a++,e++....放到continue前面就行了 东辰木 发表于 2018-12-24 16:42
continue这句语句执行后就退出当前循环进入下一个循环,你后面那句++就不会执行,所以就全都是0了,把a++,e ...
放前面了,但还是全部为0,是什么情况? Mountain_gs 发表于 2018-12-24 16:30
continue后面的部分是不执行的
我把continue放在++后面了,但还是为0是什么情况 我叫MD 发表于 2018-12-24 17:02
放前面了,但还是全部为0,是什么情况?
是或运算||不是与运算&&,怎么可能同时大写和小写 Charles未晞 发表于 2018-12-24 16:42
先计数再continue........
我把continue放在++后面了,但还是为0是什么情况 我叫MD 发表于 2018-12-24 17:06
我把continue放在++后面了,但还是为0是什么情况
判断里,是或运算||不是与运算&&,怎么可能同时大写和小写 Charles未晞 发表于 2018-12-24 17:04
是或运算||不是与运算&&,怎么可能同时大写和小写
还是没有想要的运行结果 运行后 i(15),其余为0;实在想不通为什么,难道continue执行后,又从第一个字母开始重新运行了? 我叫MD 发表于 2018-12-24 17:26
还是没有想要的运行结果 运行后 i(15),其余为0;实在想不通为什么,难道continue执行后,又从第一个字 ...
貌似getchar()只获取第一个字符 for循环有一点问题,一次循环getchar了两次,改成for(;(ch=getchar())!='\n;)或者是改成while((ch=getchar())!='\n)
页:
[1]