大佬们指点一下
查看原帖
大佬们指点一下
556267
hyt2021楼主2021/11/14 11:43

小数运行结果正确,提交上去不对,大佬们指点一下

#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
int main()
{
	char s[21],s1[21],s2[21];
	cin>>s;
	if(s[0]=='0'&&s[1]=='\0')
	cout << "0";
	int f=0;
	int i;
	for(i=0;i<strlen(s);i++)
	{
		if(s[i]=='.')
		{
			f=1;break;
		}
		else if(s[i]=='/')
		{
			f=2;break;
		}
		else if(s[i]=='%')
		{
			f=3;break;
		}
	}
	int k=0;
	int vis=0;
	if(f==0)
	{
		for(int j=strlen(s)-1;j>=0;j--)
		{
			if(s[j]!='0'&&!vis)
			{
				vis=1;
			}
			if(vis)
			cout << s[j];	
		}
		
	}
	else if(f==1)
	{
		for(int j=i-1;j>=0;j--)
		{
			if(s[j]!='0'&&!vis)
			{
				vis=1;
			}
			if(vis)
			cout << s[j];
		}
		if(s[0]=='0'&&s[1]=='.')
		cout << 0;
		cout << ".";
		vis=0;
		int k=0;
		for(int j=i+1;j<strlen(s);j++)
		{
			if(s[j]!='0'&&!vis)
			{
				vis=1;
			}
			if(vis)
			{
			s1[k]=s[j];	
			k++;
			}
			
		}
		for(k=strlen(s1)-1;k>=0;k--)
		cout << s1[k];
	}
	else if(f==2)
	{
		for(int j=i-1;j>=0;j--)
		{
			if(s[j]!='0'&&!vis)
			{
				vis=1;
			}
			if(vis)
			cout << s[j];
		}
		cout << "/";
		vis=0;
		for(int j=strlen(s)-1;j>i;j--)
		{
			if(s[j]!='0'&&!vis)
			{
				vis=1;
			}
			if(vis)
			cout << s[j];
		}
	}
	else if(f==3)
	{
		for(int j=strlen(s)-2;j>=0;j--)
		{
			if(s[j]!='0'&&!vis)
			{
				vis=1;
			}
			if(vis)
			cout << s[j];
		}
		cout << "%";
	}
    return 0;
}
2021/11/14 11:43
加载中...