註意:eg a+2a=4 第一個a的k等於0 特例 eg -2=6y 等號右邊f要變 ...
#include <iostream> #include <cstring> #include <iomanip> using namespace std; int main() { string str; cin>>str; int f=1,d=1; char c; long double k=0,b=0,num=0,ans; for(int i=0;i<str.length();i++) { if(str[i]>='0' && str[i]<='9') num=num*10+str[i]-48; if(str[i]>='a' && str[i]<='z') { if(i==0) k=1; c=str[i]; k=k+f*d*num; num=0; } if(str[i]=='-') { b=b+f*d*num; num=0; f=-1; } if(str[i]=='+') { b=b+f*d*num; num=0; f=1; } if(str[i]=='=') { b=b+f*d*num; f=1; num=0; d=-1; } } if(num!=0) b=b+f*d*num; ans =-1*b/k; if(ans==-0) ans=0; cout<<c<<"="; cout<<setiosflags(ios::fixed)<<setprecision(3)<<ans<<endl; return 0; }
註意:eg a+2a=4 第一個a的k等於0 特例
eg -2=6y 等號右邊f要變