有哪些dalao们帮我看看这个代码为啥只有65分吗?谢谢
(错误点:9,10,11,13,14,17,19)
#include <bits/stdc++.h>
using namespace std;
string daoint(string s){
string ans = "";
if(s == "0"){
ans = "0";
return ans;
}else{
reverse(s.begin(), s.end());
for(int i = 0; i < s.size(); i++){
if(s[i] != '0') break;
else s[i] = ' ';
}
while(s.find(' ') != string::npos) s.replace(s.find(' '), 1, "");
return s;
}
}
string daofen(string s){
string ans;
bool f = false;
if( s[0] == 0 ) f = true;
ans = ans + "/" + daoint(s.substr(s.find("/") + 1, s.size() - 1));
if(ans[0] == '/') ans.insert(0, "0");
return ans;
}
string redouble(string s){
string ans = daoint(s.substr(0, s.find(".")));
ans = ans + "." + daoint(s.substr(s.find(".") + 1, s.size() - 1));
for(int i = ans.size() - 1; i >= 0; i--){
if(ans[i] == '.') ans[i] = ' ';
if(ans[i] != '0') break;
else ans[i] = ' ';
}
if( ans[0] == '.' ) ans.insert(0, "0");
if( ans[ans.size() - 1] == '.' ) ans[ans.size() - 1] = ' ';
return ans;
}
string daobai(string s){
string ans = daoint(s.substr(0, s.size() - 2));
ans = ans + "%";
if(ans[0] == '%') ans.insert(0, "0");
return ans;
}
int main(){
string s, ans;
cin >> s;
if( s.find("/") == string::npos && s.find(".") == string::npos && s.find("%") == string::npos ) ans = daoint(s);
else if( s.find("/") != string::npos && s.find(".") == string::npos && s.find("%") == string::npos ) ans = daofen(s);
else if( s.find("/") == string::npos && s.find(".") != string::npos && s.find("%") == string::npos ) ans = redouble(s);
else if( s.find("/") == string::npos && s.find(".") == string::npos && s.find("%") != string::npos ) ans = daobai(s);
cout << ans;
return 0;
}