第五个点WA求助
查看原帖
第五个点WA求助
158878
B1ade_楼主2021/6/14 20:59
#include<bits/stdc++.h>
using namespace std;
double ln,rn,lx,rx,a=0;
string s;
int main()
{
	cin>>s;
	int f1=0,f2=1,flag=-1;
	char r,cr;
	for (int i=0;i<s.size();++i)
	{
		r=s[i];
		if(r>'9'||r<'0')
		{
			if (r!='+'&&r!='-'&&flag==-1&&r!='=')
			{
				flag=i;
				break;
			}
		}
	}
	char ch=s[flag];
	for (int i=0;i<s.size();++i)
	{
		r=s[i];
		cr=s[i-1];
		if (s[i]=='=')
		{
			if (s[i-1]>'9'||s[i-1]<'0')
			{
				lx+=f2*a;
				a=0;
			}
			else
			{
				ln+=f2*a;
				a=0;
			}
			f1=1;
			f2=1;
			continue;
		}
		if (!f1)
		{	
			if (s[i]=='-')
			{
				if (s[i-1]>'9'||s[i-1]<'0')
				{
					if ((s[i-2]!='='&&s[i-2]!='+'&&(s[i-2]>'9'||s[i-2]<'0')&&s[i-2]!='-')&&i==1&&i>=1)
						a=1;
					lx+=f2*a;
					a=0;
				}
				else
				{
					ln+=f2*a;
					a=0;
				}
				f2=-1;
				continue;
			}
			if (s[i]=='+')
			{
				if (s[i-1]>'9'||s[i-1]<'0')
				{
					if ((s[i-2]!='='&&s[i-2]!='+'&&(s[i-2]>'9'||s[i-2]<'0')&&s[i-2]!='-')||i==2)
						a=1;
					lx+=f2*a;
					a=0;
				}
				else
				{
					ln+=f2*a;
					a=0;
				}
				f2=1;
				continue;
			}
		}
		else
		{
			if (s[i]=='-')
			{
				if (s[i-1]>'9'||s[i-1]<'0')
				{
					rx+=f2*a;
					a=0;
				}
				else
				{
					rn+=f2*a;
					a=0;
				}
					
				f2=-1;
				continue;
			}
			if (s[i]=='+')
			{
				if (s[i-1]>'9'||s[i-1]<'0')
				{
					rx+=f2*a;
					a=0;
				}
				else
				{
					rn+=f2*a;
					a=0;
				}
				f2=1;
				continue;
			}
		}
		if (s[i]<'0'||s[i]>'9')continue;
		a=a*10+s[i]-'0';
	}
	if (r>'9'||r<'0')
	{
		rx+=f2*a;
		a=0;
	}
	else
	{
		rn+=f2*a;
		a=0;
	}
	lx-=rx;
	rn-=ln;
	lx=rn/lx;
	if (lx==-0) lx=0;
	cout<<ch<<'=';
	printf("%.3lf",lx);
	return 0;
}
```cpp
2021/6/14 20:59
加载中...