代码: //找不到元音的程序
#include<stdio.h>
int main()
{
int count;char letter;int vowel=0;
for(count=0;count<10;count++)
{
letter=getchar();
switch(letter)
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':vowel++;
}printf("Count:%d",count);
}
printf("NO of vowels is %d\n",vowel);
return 0;
}
输出: 一个 一个 小号 d F 元音的NO是2
程序只读取5个字符,然后显示预期的输出。我尝试打印'count'的值,并在循环结束时,它增加到10.但是,我无法读取相当于我的for循环条件的字符数(10)。请帮忙。
答案 0 :(得分:1)
空间' '
也是一个角色。 getchar
一次读取一个字符,因此也会读取' '
。从输入中删除空格。
答案 1 :(得分:1)
我很惊讶你没有从printf("Count: %d\n");
行注意到每个输入字母的计数增加2。 getChar
函数从输入文本中获取所有字符,包括空格和换行符。使程序按预期运行的最简单方法是将最大计数增加到20:
for(count = 0; count < 20; count++)
{
letter = getchar();
// ...
备选方案包括使用scanf
并检查是否到达文本输入的末尾,但您的实现更加安全。
答案 2 :(得分:0)
#include <stdio.h>
#include <ctype.h>
int main(){
int count=0, vowel=0;
char letter;
while(count < 10){
letter=getchar();
if(isgraph(letter)){
switch(tolower(letter)) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':vowel++;
}
++count;//Counting only the case of the display characters that are not blank
}
}
printf("NO of vowels is %d\n",vowel);
return 0;
}