90pts,求救
查看原帖
90pts,求救
919410
Pollococido楼主2024/6/2 21:20
#include <bits/stdc++.h>
using namespace std;
string s, s1, s2, s3;
int pos;

bool is_vowel (char c) {
    return (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' || c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U');
}

int quo(int n) {
    if (n % 3 == 0 || n % 3 == 1) return n / 3;
    return n / 3 + 1;
}

int main() {
    //cout << is_vowel('I') << endl;
    getline(cin, s);
    int n = s.length(), letter = 0;
    //第一种
    for (int i = 0; i < n; i++) {
        if (isalpha(s[i])) {
            letter++;
            s1 += '.';
        }else s1 += s[i];
    }
    cout << s1 << endl;
    //第二种
    int cnt = quo(letter);
    bool zero = false;
    for (int i = 0; i < n; i++) {
        if (cnt == 0 && !zero) pos = i, zero = true;
        if (s1[i] == '.' && cnt > 0) {
            s2 += s[i];
            cnt--;
        }else s2 += s1[i];
    }
    cout << s2 << endl;
    //第三种
    bool flag = false;
    //cout << pos << endl;
    for (int i = pos; i < n; i++) {
        if (is_vowel(s[i])) flag = true;
    }
    if (flag) {
        for (int i = 0; i < n; i++) {
            if (is_vowel(s[i])) s3 += s[i];
            else s3 += s2[i];
        }
    }else {
        pos = quo(2 * letter);
        //cout << pos << endl;
        for (int i = 0; i < n; i++) {
            if (isalpha(s[i]) && pos > 0) s3 += s[i], pos--;
            else s3 += s1[i];
        }
    }
    cout << s3;
    return 0;
}

#7错了 求指教orz

2024/6/2 21:20
加载中...