#include <iostream> #include <string> #include <algorithm> #include <numeric> using namespace std ; bool isV(char c) { return c == 'a' || c=='e' || c == 'i' || c == 'o' || c == 'u'; } bool isPass(string s) { int num = 1 ; int flag = 0 ; for ( int i = 0 ; i < s.size();++i) { if (isV[s[i]]) { flag = 1 ; break ; } } int cnt1=0 , cnt2=0 ; if ( s.size() >=3 ) { for ( int i = 0 ; i < s.size()-2;++i) for ( int j = 0 ; j < 3 ; ++j) { if ( isV(s[i+j])) ++cnt1; else ++cnt2; } if ( cnt1 == 3 || cnt2 == 3) return false ; } if ( s.size()>=2) { for ( int i = 0 ; i < s.size();++i) if (s[i]== s[i+1] && (s[i] != 'e'|| s[i] != 'o')) return false ; } if ( flag) return true ; else return false ; } int main() { string s ; cin >> s ; while(s.compare("end")) { if ( isPass(s) ) cout<<"<"<<s<<">"<<" is acceptable."<<endl; else cout<<"<"<<s<<">"<<" is not acceptable."<<endl; cin >> s ; } return 0 ; }
一开始 想错了 以为是三个一样的元音字母 或者辅音 结果。。。。。