我试图模仿一个while循环来计算设定行数中的元音。第一个输入是要输入的总行数。然而,这会启动循环并输出一个0.这意味着它只能计算7行而不是8个。我可以通过将count设置为-1来解决此问题,但它仍然会输出随机零。有没有办法可以改变循环来解决这个问题?C++虽然循环启动得太早
#include <iostream>
#include <cstring>
using namespace std;
int main() {
string sentence;
int count;
int total;
int length;
int lengthcount;
int output;
output = 0;
length = 0;
count = 0;
total = 0;
lengthcount = 0;
cin >> total;
while (total != count){
getline(cin, sentence);
length = sentence.length();
while (length != lengthcount){
switch(sentence[lengthcount]){
case 'a':
++output;
break;
case 'e':
++output;
break;
case 'i':
++output;
break;
case 'o':
++output;
break;
case 'u':
++output;
break;
case 'y':
++output;
break;
}
++lengthcount;
}
cout << output << " ";
++count;
lengthcount = 0;
output = 0;
}
return 0;
}
http://stackoverflow.com/questions/8146106/does-case-switch-work-like-this将帮助您简化您的代码。 – 2014-09-13 14:03:46