#include<bits/stdc++.h>
using namespace std;
char fc[114514],y;
int dhp,flag,op,num,p;
double xs,cs;
int qpow(int base,int power)
{
long long int result=1;
while(power>0)
{
if(power&1)
{
result*=base;
}
base*=base;
power>>=1;
}
return result;
}
int main()
{
cin>>fc;
for(int i=0;i<strlen(fc);i++)
{
if(fc[i]=='=')
{
dhp=i;
break;
}
}
for(int i=0;i<strlen(fc);i++)
{
if(fc[i]>='0'&&fc[i]<='9'&&flag==0)
{
flag=1;
op=i;
}
else if(!(fc[i]>='0'&&fc[i]<='9')&&flag==1)
{
num=0;
flag=0;
p=0;
for(int j=i-1;j>=op;j--)
{
num+=int(fc[j]-'0')*qpow(10,p);
p++;
}
if(fc[op-1]=='-'&&op!=0)num-=2*num;
if(fc[i]!='+'&&fc[i]!='-'&&fc[i]!='=')
{
y=fc[i];
if(i<dhp)xs+=num;
else if(i>dhp)xs-=num;
}
else
{
if(i<dhp)cs+=num;
else if(i>dhp)cs-=num;
}
}
}
cout<<y<<'='<<fixed<<setprecision(3)<<cs/xs;
return 0;
}
其他的问题各位大牛帮忙看一下