求助#8
查看原帖
求助#8
227936
zpy133楼主2020/8/9 16:44

求大佬告诉#8测试点,可以的话帮我95分的代码查一下错``` #include #include using namespace std; string s,a,b; int l,kind; bool flag; void pr(string s) { int p=s.size()-1; while(s[p]=='0' && p>0) p--; for(;p>=0;p--) cout<<s[p]; }

int main() { cin>>s;l=s.size(); for(int i=0;i<l;i++) { if(s[i]=='.') {kind=2;break;} else if(s[i]=='/') {kind=3;break;} else if(s[i]=='%') {kind=4;break;} else kind=1; }

if(kind==1) pr(s);
	
else if(kind==2)
{
	a=b="";flag=1;
	for(int i=0;i<l;i++)
	{
		if(s[i]=='.') flag=0;
		else
		{
			if(flag==1) a=a+s[i];
			else b=b+s[i];
		}
	}
	pr(a);cout<<'.';
	int ii=0,ll=b.size()-1;
	while(b[ii]=='0' && ii<ll)
	{
		b.erase(ii,1);
		ii++;
	}
	pr(b);
}

else if(kind==3)
{
	a=b="";flag=1;
	for(int i=0;i<l;i++)
	{
		if(s[i]=='/') flag=0;
		else
		{
			if(flag==1) a=a+s[i];
			else b=b+s[i];
		}
	}
	pr(a);cout<<'/';pr(b);
}

else if(kind==4)
{
	a="";
	for(int i=0;i<l-1;i++) a=a+s[i];
	pr(a);cout<<'%';
}
return 0;

}

2020/8/9 16:44
加载中...