嘿伙计们我还没能找到关于这个特定的元音计数程序的正确指导,所以任何帮助都会受到赞赏。
到目前为止,这是我的代码,我并不完全确定错误的位置(可能在for循环中,因为我对它们非常绿色)。 vowelCount变量也没有正确计数。
提前致谢。
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main() {
char letter(10);
int vowelCount(0);
cout << "Enter a maximum of 10 characters: ";
cin >> letter;
for (int i = 0; i <= letter; i++) {
if (letter == 'a' || letter == 'A' ||
letter == 'e' || letter == 'E' ||
letter == 'i' || letter == 'I' ||
letter == 'o' || letter == 'O' ||
letter == 'u' || letter == 'U') {
vowelCount++;
}
}
cout << "\nTotal number of vowels: " << vowelCount;
cout << endl;
return 0;
}
答案 0 :(得分:0)
问题在于您声明了一个单个字符(并初始化为10
)。然后从零循环到该字母的ASCII值。您应该读入string或数组字符。
如果你选择后者(字符数组),请记住在C ++中这样的字符串需要一个额外的字符(终止字符串)。因此,如果您想要一个包含10个字符的字符串,则必须将该数组声明为11个字符。
答案 1 :(得分:0)
您的代码存在一些错误:
char letter(10)
不是char数组,而是单个char。
您的for
循环转到字母值(授予10),但一旦将letter
修复为数组,则不会。
此外,当您阅读变量字母时,您应该使用operator[]
来访问其元素。
以下是正确的代码:
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
char letter;
int vowelCount(0);
cout << "Enter a maximum of 10 characters: ";
for (int i = 0; i < 10; i++)
{
cin >> letter;
if (letter == 'a' || letter == 'A' ||
letter == 'e' || letter == 'E' ||
letter == 'i' || letter == 'I' ||
letter == 'o' || letter == 'O' ||
letter == 'u' || letter == 'U')
{
vowelCount++;
}
}
cout << "\nTotal number of vowels: " << vowelCount;
cout << endl;
return 0;
}