代码
```cpp
#include<bits/stdc++.h>//万能库
using namespace std;
char arr[1000];
int n;
bool flag=false;
int main(){
gets(arr);
for(int i=0;i<strlen(arr);i++){
if(arr[i]=='.'||arr[i]=='/'){
n=i-1;
break;
}
if(arr[i]=='%'){
n=i-1;
break;
}
if(i==strlen(arr)-1){
n=i;
}
}
for(int i=0;i<=n;i++){
if(!flag&&arr[n-i]=='0'&&i!=n){}
else{
cout<<arr[n-i];
flag=true;
}
}
if(arr[n+1]=='.'||arr[n+1]=='/'){
flag=false;
if(arr[n+1]=='.'){
cout<<".";
}else{
cout<<"/";
}
for(int i=0;arr[n+2+i]=='0'&&n<strlen(arr)-3;i++){
n++;
}
for(int i=strlen(arr)-1;i>n+1;i--) {
cout<<arr[i];
}
}
if(arr[n+1]=='%') {
cout<<"%";
}
return 0;
}
```
by xiangzhenze611 @ 2024-02-12 14:09:01
A了
```
#include<bits/stdc++.h>
using namespace std;
string str,s,z;
int main(){
cin>>str;
if(str=="0%"){
cout<<str;
return 0;
}
if(str=="0.0"){
cout<<str;
return 0;
}
if(str.size()==1){
cout<<str;
return 0;
}
int x=str.length();
int k=x;
if(str[x-2]=='.'&&str[x-1]=='0'){
if(str.size()==3){
cout<<str;
return 0;
}
string d=str.substr(0,x-3);
reverse(d.begin(),d.end());
int f=0;
for(int i=0;i<x-3;i++){
if(d[i]!='0'){
break;
}
f++;
}
cout<<d.substr(f,x-3)+".0";
return 0;
}
if(str[x-3]=='.'&&str[x-2]=='0'&&str[x-1]=='%'){
if(str.size()==4){
cout<<str;
return 0;
}
string d=str.substr(0,x-4);
reverse(d.begin(),d.end());
int f=0;
for(int i=0;i<x-4;i++){
if(d[i]!='0'){
break;
}
f++;
}
cout<<d.substr(f,x-3)+".0%";
return 0;
}
if(str[x-1]>='0'&&str[x-1]<='9'){
str.push_back('.');
}
x=str.size();
bool dian=0;
for(int i=0;i<x;i++){
if(str[i]=='%'||str[i]=='/'||str[i]=='.'){
reverse(s.begin(),s.end());
if(s.size()==1){
z=z+s;
if(!dian){
z=z+str[i];
}
if(str[i]=='.'){
dian=1;
}
s.clear();
continue;
}
if(dian){
z=z+s;
if(str[i]=='%'){
z=z+str[i];
}
continue;
}
int y=s.size(),res=0;
for(int j=0;j<y;j++){
if(s[j]!='0'){
break;
}
res++;
}
z=z+s.substr(res,y);
if(str[i]!='.'||i<x-1){
z=z+str[i];
}
s.clear();
if(str[i]=='.'){
dian=1;
}
}else{
s.push_back(str[i]);
}
}
x=z.size();
int f=x;
for(int i=x-1;i>=0;i--){
if(z[i]=='%'||z[i]=='/'||z[i]=='.'){
f--;
continue;
}
if(z[i]!='0'){
break;
}
f--;
}
if(isdigit(z[x-1])){
cout<<z.substr(0,f);
}else{
cout<<z.substr(0,f)+z[x-1];
}
x=z.size();
if(str[k-1]=='%'&&z[x-1]!='%'){
cout<<'%';
}
return 0;
}
```
120行,真不错。。。
by ny_jerry2 @ 2024-02-12 17:22:28