我看了题解后整理出了一组代码
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
string f;
char k,a;
int nov=1,t=1,z,b,m;
bool num;
int main()
{
cin>>f;
int l=f.length();
for(int i=1;i<=l;i++)
{
k=f[i];
if(k=='-')
{
b+=t*nov*m;
m=0;
t=-1;
num=false;
}
if(k=='+')
{
b+=t*nov*m;
m=0;
t=1;
num=false;
}
if(k=='=')
{
b+=t*nov*m;
m=0;
t=1;
num=false;
}
if(k>='a'&&k<='z')
{
if(num)
{
z+=t*nov*m;
m=0;
}
else
{
z+=nov*t;
}
a=k;
num=false;
}
if(k>='0'&&k<=9)
{
m=m*10+k-'0';
num=true;
}
}
b+=nov*t*m;
double ans=(double)(-b*1.0/k);
if(ans==-0.0)
{
ans=0;
}
printf("%c=%.3f",a,ans);
return 0;
}
结果提交评测时一个也没对,又将这些代码用Dev-c++打开,
运行结果出现一些奇葩的字符,比如:"x=nan",
你可以试一下,把代码纠正一下。