https://www.luogu.org/blog/Asukaaa/solution-p1022
这里注意一下判断某个数组等于零和其等于false是不一样的。。。。
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
char ww;
double sz=0,xs=0;
char p;
int num[110];
int l=1,pd=1;
int mid;
int main()
{
memset(num,0,sizeof(num));
pd=1;
while(ww!='=')
{
ww=getchar();
if(ww=='-')
{
++l;
pd=-1;
}
if(ww=='+')
{
++l;
pd=1;
}
if(ww>='0'&&ww<='9')
{
if(num[l]==0) num[l]=(ww-'0')*pd;
else
{
num[l]=num[l]*10+(ww-'0')*pd;
}
}
if(ww>='a'&&ww<='z')
{
p=ww;
if(num[l]!=0)
{
xs+=num[l];
num[l]=0;
}
else
{
xs+=pd; //judge -x or x
}
--l;
}
}
mid=l,++l,pd=1;
while(ww!='\n')
{
ww=getchar();
if(ww=='-')
{
++l;
pd=-1;
}
if(ww=='+')
{
++l;
pd=1;
}
if(ww>='0'&&ww<='9')
{
if(num[l]==0)
{
num[l]=(ww-'0')*pd;
}
else
{
num[l]=num[l]*10+(ww-'0')*pd;
}
}
if(ww>='a'&&ww<='z')
{
p=ww;
if(num[l]!=0)
{
xs-=num[l];
num[l]=0;
}
else
{
xs-=pd; //judge -x or x
}
--l;
}
}
// cout<<sz<<' '<<xs;
// for(int i=1;i<=l;i++)
// {
// cout<<num[i]<<' ';
// }
for(int i=1;i<=l;i++)
{
if(i<=mid)
{
sz-=num[i];
}
else
{
sz+=num[i];
}
}
//cout<<sz<<' '<<xs<<endl;
if(!(sz/xs))
{
printf("%c=0.000",p);
}
else
{
printf("%c=%.3lf",p,sz/xs);
}
return 0;
}