#include<iostream>
#include<string>
using namespace std;
int main()
{
string in;
char temp;
int flag, flagv;
int vowel = 0;
int consonant = 0;
while (cin >> in)
{
if (in == "end")
break;
flag = 1;
flagv = 0;
temp = '~';
for (int i = 0; i < in.size(); i++)
{
if (in[i] == 'a'||in[i]=='e'||in[i]=='i'||in[i]=='o'||in[i]=='u')
{
consonant = 0;
flagv = 1;
vowel++;
if (vowel == 3)
{
flag = 0;
break;
}
}
else
{
vowel = 0;
consonant++;
if (consonant == 3)
{
flag = 0;
break;
}
}
if (temp == in[i] &&in[i]!='e'&&in[i]!='o')
{
flag = 0;
break;
}
else
temp = in[i];
}
cout << "<" << in << "> " << "is ";
flag == 1&&flagv==1 ? cout << "acceptable" : cout << "not acceptable";
cout << endl;
}
return 0;
}
你的元音计数变量和辅音计数变量需要在每次循环开始的时候初始化为0,不然上次结果会影响到下次结果的。
比如你按照下面这个输入试试:
e
ee