输出和答案一样,就是报错(求大佬看看!)
查看原帖
输出和答案一样,就是报错(求大佬看看!)
480441
zhanwutuo楼主2024/10/13 18:24

输入84754765.322414时 我的输出与答案输出相同为什么错啊!!

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	string a;cin>>a;
	int q;
	for(int i=0;i<a.size();i++)
	{
		if(a[i]=='.'){q=1;break;
		}
		else if(a[i]=='/'){q=2;break;
		}
		else if(a[i]=='%'){q=3;break;
		}
		else q=0;
	}
	int f=0;
	if(q==0)
	{
		if(a[0]=='0')cout<<0;
		for(int i=a.size()-1;i>=0;i--)
		{
			if(a[i]!='0'){f=1;}
			if(f==1)cout<<a[i];
		}
	}
	if(q==1)
	{
		int j;int f1=0,f2=0;
		for(int i=0;i<a.size();i++)
		{
			if(a[i]=='.')j=i;
	    }
			string b= a.substr(0,j);
			string c= a.substr(j+1);
		//cout<<b[1]<<"---"<<c[1]<<endl;
		if(b[0]=='0'&&!b[1]&&c[0]=='0'&&!c[1])cout<<0;
		else 
		{
			if(b[0]=='0'&&!b[1])cout<<0;
			for(int i=b.size()-1;i>=0;i--)
		    {
			if(b[i] != '0'){f1=1;}
			if(f1==1)cout<<b[i];
		    }
		    
		    cout<<".";
		if(c[0]=='0'&&!c[1])cout<<0;
		string cu;
		    for(int i=0;i<c.size();i++)
		    {
			if(c[i]!='0'){f2=1;}
			if(f2==1)cu+=c[i];
		    }
		    for(int i=cu.size();i>=0;i--)cout<<cu[i];
	    }
	}
	if(q==2)
	{
		int j;int f1=0,f2=0;
		for(int i=0;i<a.size();i++)
		{
			if(a[i]=='/')j=i;
	    }
			string b= a.substr(0,j);
			string c= a.substr(j+1);
			
			for(int i=b.size()-1;i>=0;i--)
		    {
			if(b[i] != '0'){f1=1;}
			if(f1==1)cout<<b[i];
		    }
		    
		    cout<<"/";
		    
		    for(int i=c.size()-1;i>=0;i--)
		    {
			if(c[i]!='0'){f2=1;}
			if(f2==1)cout<<c[i];
		    }
		
	}
	if(q==3)
	{
		for(int i=a.size()-2;i>=0;i--)
		    {
			if(a[i]!='0'){f=1;}
			if(f==1)cout<<a[i];
		    }
		    cout<<"%";
	}
}
2024/10/13 18:24
加载中...