又是不理解的一天,下载测试点,输出结果一摸一样的,却只对第四个,什么情况...
求教育!
#include<bits/stdc++.h>
using namespace std;
#define ll long long
string s;
char ch;
ll sum,x,k,op,data=1;
int main(){
cin>>s;
if(s[0]=='-') op=-1;//op判断正负号
else op=1;
for(int i=0;i<s.size();i++){
if(s[i]>='0'&&s[i]<='9')
{
sum=sum*10+(s[i]-'0')*op*data;//data判断等号左右,移项为kx+b
if(i==s.size()-1) k=k+sum;
}
else
{
if(s[i]!='-'&&s[i]!='+'&&s[i]!='=')
{
if(sum==0) x=x+op*data;
else x=x+sum;
sum=0;ch=s[i];
}
else
{
if(s[i]=='+')
{
k=k+sum;
sum=0;op=1;
}
else if(s[i]=='-')
{
k=k+sum;
sum=0;op=-1;
}
else if(s[i]=='=')
{
data=-1;k=k+sum;sum=0;op=1;
}
}
}
}
cout<<ch<<"=";
if(k==0) cout<<0.000;
else printf("%.3llf",k*(-1.0)/x);
return 0;
}