#include<bits/stdc++.h>
using namespace std;
void print(char temp[],int l){
int i,j=0;
for(i=0;i<l;i++){
if(temp[i]!='0'){
j=i;break;
}
}
for(i=j;i<l;i++)cout<<temp[i];
//cout<<"over"<<endl;
}
void Print(char temp[],int l){
int i,j=0,k;
for(i=0;i<l;i++){
if(temp[i]!='0'){
j=i;break;
}
}
for(i=l-1;i>=0;i--){
if(temp[i]!='0'){
k=i;break;
}
}
for(i=k;i>=j;i--)cout<<temp[i];
//cout<<"over"<<endl;
}
void mm(){
char Num[20],temp[20];
int len,i,pos,CASE=100,j;
cin>>Num;
len=strlen(Num);//获取输入字符的长度
//cout<<len;//确认获取的长度没问题
for(i=0;i<len;i++){
//cout<<"—Num—"<<Num[i]<<endl;
if(Num[i]=='/'){
CASE=3;//分数记作CASE3
pos=i;//获取分数线或小数点的位置
//cout<<"Num[pos]="<<Num[pos]<<endl;
break;
}else if(Num[i]=='.'){//小数记作CASE0
CASE=0;
pos=i;
break;
}else if(Num[i]=='%'){
CASE=1;//百分数记作CASE1
break;
}
if(CASE==100)CASE=2;
}
switch(CASE){
case 0:
//cout<<"case0"<<endl;
j=0;
for(i=pos-1;i>=0;i--){
temp[j]=Num[i];
j++;
}//pos前录入temp
print(temp,j);
//---------------------------------------------------
cout<<(char)Num[pos];
j=0;
for(i=pos+1;i<len;i++){
temp[j]=Num[i];
j++;
}//pos后录入temp
//cout<<"j="<<j<<endl;
//cout<<"temp="<<temp<<endl;
Print(temp,j);
break;
case 1:
//cout<<"case1"<<endl;
j=0;
if(Num[0]=='0'){
cout<<"0%";break;
}else{
for(i=len-2;i>=0;i--){
temp[j]=Num[i];
j++;
}
temp[len-1]=Num[len-1];
//cout<<temp<<endl;
//录入temp
print(temp,len);
break;
}
case 2:
//cout<<"case2"<<endl;
j=0;
for(i=len-1;i>=0;i--){
temp[j]=Num[i];
j++;
}//录入temp
print(temp,len);
break;
case 3:
//cout<<"case0"<<endl;
j=0;
int flag0=0;
for(i=pos-1;i>=0;i--){
temp[j]=Num[i];
j++;
if(Num[i]=='0'){
flag0++;
}
}//pos前录入temp
//cout<<"flag0="<<flag0<<endl;
if(flag0==pos){
cout<<0;
}else{
print(temp,j);
}
//---------------------------------------------------
cout<<(char)Num[pos];
j=0;
for(i=len-1;i>pos;i--){
temp[j]=Num[i];
j++;
}//pos后录入temp
//cout<<"j="<<j<<endl;
//cout<<"temp="<<temp<<endl;
print(temp,j);
break;
}
}
int main(){
mm();
}
洛谷习题P1033字数反转
最新推荐文章于 2022-11-21 21:26:09 发布