首页 > 解决方案 > RE:为什么我从这个计数器中得到错误的元音值?...原始代码

问题描述

说明:使用返回值函数编写一个程序,提示用户输入一个字符序列并输出元音的个数。这是老师给的问题。。

#include <iostream>
using namespace std;
bool isVowel(char ch);
int main() {
    char ch;
    cout << "Enter a character: ";
    cin >> ch;

    cout << ch << " is a vowel: " << isVowel(ch) << endl; 
    return 0;
}
bool isVowel(char ch){
    if (ch=='A' || ch=='E' || ch=='I' || ch=='O' || ch=='U' ||
        ch=='a' || ch=='e' || ch=='i' || ch=='o' || ch=='u'){
        return true;
    } else
        return false;
}

标签: c++

解决方案


char是一个字符,而不是一个句子。对于一个句子,使用 a string

string s;
cout << "Enter a sentence: ";
cin >> s;

然后使用循环遍历句子的每个字符

for (char ch : s)
{
    ...
}

然后用于isVowel测试单个字符,如果找到则增加计数。线索在名称isVowel中,不是countVowels,所以isVowel应该测试单个元音并返回真假,而不是计算元音的数量。

int vowels = 0;
for (char ch : s)
{
     if (isVowel(ch))
         vowels++;
}

最后写isVowel测试单个字符。

bool isVowel(char ch)
{ 
    return ch=='A' || ch=='E' || ch=='I' || ch=='O' || ch=='U' ||
        ch=='a' || ch=='e' || ch=='i' || ch=='o' || ch=='u';
}

推荐阅读