#include<iostream>
#include<cstdio>
using namespace std;
int p=0,len=1,k1=0,k2=0,r1=1,r2=0;
char a[100];
char b[100];
void turnover(int sta, int end){
for(int i=end,j=0;i>=sta;i--) b[++j]=a[i];
for(int i=sta,j=0;i<=end;i++) a[i]=b[++j];
}
int main(){
char s;
while(1){
s=getchar();
if(s==EOF) break;
else{
a[len++]=s;
if(s=='.') p=1;//小数
else if(s=='/') p=2;//分数;
else if(s=='%') p=3;//百分数
if(p==0) k1++;
else k2++;
}
}
len-=2;
//cout<<len<<endl;
if(p==1){
turnover(1,k1);
turnover(k1+2,len);
}
else if(p==2){
turnover(1,k1);
turnover(k1+2,len);
}
else if(p==3){
turnover(1,k1);
turnover(k1+2,len);
}
else{
turnover(1,len);
}
while(a[r1]=='0') r1++;
while(a[len-r2]=='0') r2++;
if(a[r1]=='.' || a[r1]=='/' || a[r1]=='%') cout<<'0';
for(int i=r1;i<=len-r2;i++){
cout<<a[i];
}
if(a[len-r2]=='.' || a[len-r2]=='/' || a[len-r2]=='%') cout<<'0';
cout<<endl;
return 0;
}
第一个测试点就错了,可为什么我在自己终端上输出是正确的呢? 大佬们,求助!!!!! 谢谢!!!