#9#10WA,90分求助
查看原帖
#9#10WA,90分求助
352666
张恒灿楼主2021/8/5 12:05
#include<iostream>
#include<string>
using namespace std;
int l,flag=1,k;
string s;
int main(){
	cin>>s;
	l=s.length();
	for(int i=0;i<=l-1;i++){
		if(s[i]=='.'){
			flag=2;
			k=i;
			break;
		}
		if(s[i]=='/'){
			flag=3;
			k=i;
			break;
		}
		if(s[i]=='%'){
			flag=4;
			k=i;
			break;
		}
	}
	if(flag==1){//纯数字 
		int t=-1;
		for(int i=l-1;i>=0;i--){
			if(s[i]!='0'){
				t=i;
				break;
			}
		}
		if(t==-1) cout<<'0';
		else{
			for(int i=t;i>=0;i--){
				cout<<s[i];
			}
		}
	}
	else if(flag==2){//小数 
		int t=-1,t1=-1,t2=-1;
		for(int i=k-1;i>=0;i--){
			if(s[i]!='0'){//找到第一个不是零的数 
				t=i;
				break;
			}
		}
		if(t==-1) cout<<'0';
		else{
			for(int i=t;i>=0;i--){
				cout<<s[i];
			}
		}
		cout<<'.';
		for(int i=k+1;i<=l-1;i++){
			if(s[i]!='0'){
				t1=i;
				break;
			}
		}
		for(int i=l-1;i>=t1;i--){
			if(s[i]!='0'){
				t2=i;
				break;
			}
		}
		if(t1==-1 && t2==-1) cout<<'0';//小数部分为0 
		else{
			for(int i=t2;i>=t1;i--){
				cout<<s[i];
			}
		}
	}
	else if(flag==3){//分数 
		int t=-1,t1=-1,t2=-1;
		for(int i=k-1;i>=0;i--){
			if(s[i]!='0'){
				t=i;
				break;
			}
		}
		if(t==-1) cout<<'0';
		else{
			for(int i=t;i>=0;i--){
				cout<<s[i];
			}
		}
		cout<<'/';
		for(int i=l-1;i>=k+1;i--){
			if(s[i]!='0'){
				t2=i;
				break;
			}
		}
		for(int i=t2;i>=k+1;i--){
			cout<<s[i];
		}
	}
	else if(flag==4){
		int t=-1;
		for(int i=k-1;i>=0;i--){
			if(s[i]!='0'){
				t=i;
				break;
			}
		}
		if(t==-1) cout<<'0';
		else{
			for(int i=t;i>=0;i--){
				cout<<s[i];
			}
		}
		cout<<'%';
	}
	return 0;
}
2021/8/5 12:05
加载中...