总是有不通过的数据(#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;
}