16分!!!
查看原帖
16分!!!
1059277
2013wjy楼主2024/8/19 16:00
#include<bits/stdc++.h>
using namespace std;
string s;
int a,b;
bool flag=1;
int flag_t=1;
int t;
bool flag_name=true;
string name;

int main(){
	cin>>s;
	s+="+";
	for(int i=0;i<s.size();i++){
		if(s[i]=='='||s[i]=='+'||s[i]=='-'){
			if('a'<=s[i-1]&&s[i-1]<='z'){
				if(t==0){
					t=1;
				}
				a+=t*flag*flag_t;
			}else{
				b+=t*flag*flag_t;
			}
			t=0;
			flag_t=1;
			if(name.size())flag_name=false;
		}
		if(s[i]=='=')flag=-1;
		if(s[i]=='-'){
			flag_t=-1;
		}
		if('0'<=s[i]&&s[i]<='9'){
			t*=10;
			t+=s[i]-'0';
		}
		if('a'<=s[i]&&s[i]<='z'){
			if(flag_name){
				name=name+s[i];
			}
		}
	}
	if(b==0)cout<<name<<"=0.000";
	double ans=double(-b)/a;
	cout<<name<<'=';
	printf("%.3f",ans);
	return 0;
} 
2024/8/19 16:00
加载中...