70分,应该怎样完善未考虑的情况
查看原帖
70分,应该怎样完善未考虑的情况
1292265
Zzz123456789101112楼主2024/3/9 15:19

总是有不通过的数据(#5 #9 #10 #12 #15 #20 ),应怎样完善该情况(还有什么没考虑的情况吗)

#include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;
void change(string a, int begin,int end) {
    
    for (int i = end - 1; i >= begin; i--) {
        cout << a[i];
    }
}
int main() {
    string num;
    cin >> num;
    int i = 0, mid = 0;
    int len = num.length();
    while (num[i] != '.' && num[i] != '/' && num[i] != '%' && i < len) {
        i++;
    }
    mid = i;
    int minmid = mid;
    int maxmid = mid;
    if (mid < len - 1) {
        
        while (num[minmid-1] == '0') {
            minmid--;
        }
        change(num,0, minmid);
        cout << num[mid ];
        if (num[mid] == '/') {
            while (num[len - 1] == '0') {
                len--;
            }
            change(num, mid + 1, len);
        }
        else if (num[mid] == '.') {
            while (num[maxmid+1] == '0') {
                maxmid++;
            }
                change(num, maxmid + 1, len);
        }
    }
    else if (mid == len - 1 && num[mid] == '%') {
        while (num[minmid - 1] == '0') {
            minmid--;
        }
        change(num,0, minmid);
        cout << num[mid ];
    }
    else if(mid==len) {
        while (num[len - 1] == '0') {
            len--;
        }
        change(num, 0,len);
    }
    return 0;
}
2024/3/9 15:19
加载中...