求解三道C语言题!!!!

img

img

img

#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
#include <stack>
#include <vector>
#include <cmath>
#include <map>
#include <sstream>
#include <cstdio>
using namespace std;
typedef long long ll;
const int MAXN = 2e5 + 100;
int Data[MAXN];
void solve1(){
    string s;
    int x;
    cin >> s;
    int len = s.length();
    for(int i=0;i<len;i++){
        if(s[i] >= 'A' && s[i] <= 'Z') x = s[i] - 'A' + 1;
        if(s[i] >= 'a' && s[i] <= 'z') x = s[i] - 'a' + 1;
        Data[x] = 1;
    }
    char l = '0', r;
    for(int i=1;i<=26;i++){
        if(Data[i]){
            r = i;
            if(l == '0') l = i;
        }
    }
    l += 'A' - 1;
    r += 'A' - 1;
    cout << l << "-" << r;
}
void solve2(){
    string s;
    int m;
    map<int, int> mp;
    getline(cin, s);
    stringstream input(s);
    while(input >> m){
        mp[m] = 1;
    }
    cout << mp.size();
}
void solve3(){
    int x;
    cin >> x;
    if(x & 1) x--;
    cout << x;
}
int main(){
    solve1();
    solve2();
    solve3();
    return 0;
}

第一题,转成字符,字符有ASCII码,最大最小码输出