我的代码(马蜂混乱请见谅)
#include <iostream>
#include <algorithm>
#include <string>
#include <cctype>
#include <cmath>
using namespace std;
string s;
int letter,one_third_letters,two_thirds_letters;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
auto if_reason = [](char c){
c = tolower(c);
return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u';
};
getline(cin,s);
for(char c : s){
cout << (isalpha(c)?'.':c);
}
cout << '\n';
letter = count_if(s.begin(),s.end(),
[](char c) -> bool{
return isalpha(c);
}
);
one_third_letters = round(letter/3.0);
for(int i = 0,zm = 0;i < s.length();i++){
if(zm < one_third_letters){
if(isalpha(s[i])){
zm++;
}
cout << s[i];
}
else{
cout << (isalpha(s[i])?'.':s[i]);
}
}
cout << '\n';
if(any_of(s.begin() + one_third_letters,s.end(),if_reason)){
for(int i = 0,zm = 0;i < s.length();i++){
if(zm < one_third_letters){
if(isalpha(s[i])){
zm++;
}
cout << s[i];
}
else{
if(if_reason(s[i])) cout << s[i];
else cout << (isalpha(s[i])?'.':s[i]);
}
}
}
else{
two_thirds_letters = round(letter*2/3.0);
for(int i = 0,zm = 0;i < s.length();i++){
if(zm < two_thirds_letters){
if(isalpha(s[i])){
zm++;
}
cout << s[i];
}
else{
cout << (isalpha(s[i])?'.':s[i]);
}
}
}
return 0;
}
救救孩子……