簡體   English   中英

計數器不計算所有不同的元音

[英]The counter doesn't count all the different vowels

該程序應該以字符串作為輸入並計算元音的數量,但還要確定它們是確切的元音。 由於某種原因,它似乎能夠算作As,而不能算其他元音。

int main()
{
std::string inp;
int counter = 0;
int a = 0, i = 0, e = 0, o = 0, u = 0;
std::cout << "Enter the string: ";
std::cin >> inp;
for (int i = 0; i < inp.length(); i++)
{
    switch(inp[i])
    {
        case 'A':
        case 'a':
            counter++;
            a++;
            break;
        case 'E':
        case 'e':
            counter++;
            e++;
            break;
        case 'i':
        case 'I':
            counter++;
            i++;
            break;
        case 'u':
        case 'U':
            counter++;
            u++;
            break;
        case 'o':
        case 'O':
            counter++;
            o++;
            break;
    }
} 
std::cout << "There were " << counter << " vowels in total." << std::endl;
std::cout << "There were " << a << " As, " << i << " Is, " << o << " Os, " << u << " Us, and " << e << " Es." << std::endl;

return 0;
}

您的循環變量i在外部范圍中隱藏了i s not being counted correctly and in skipping characters (as every time you meet an 'i' you increment i the loop variable). 這會導致計數不正確並跳過字符(因為每次遇到'i'i循環變量都會遞增i )。

將循環變量名稱更改為其他名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM