求调qwq WA#6
查看原帖
求调qwq WA#6
1085720
zhuowei楼主2024/8/19 16:20

未知数系数为1的情况没错,-0没错,所以到底错哪了!!!

#include<bits/stdc++.h>
using namespace std;
bool flag=false,p=false;
int mi(int n){
	if(n==0) return 1;
	int num=1;
	for(int i=1;i<=n;i++){
		num=num*10;
	}
	return num;
}
int x=0,y=0;
int sum=0;
char c;
string a,b;
int main(){
	cin>>b;
	if(b[0]!='-'){
		for(int i=1;i<=b.size();i++){
			a[i]=b[i-1];
		}
		a[0]='+';
	}
	else a=b;
	bool xx=false;
	for(int i=b.size();i>=0;i--){
		int j=i;
		if(a[i]=='='){
		flag=true;
		if(a[i+1]!='-'){
			if(xx==true){
					x=x-sum;
					xx=false;
				}
			else y=y+sum;
			p=false;
			}
		}
		else if(a[i]=='+'){
			if(flag==true){
				if(xx==true){
					x=x+sum;
					xx=false;
				}
				else y=y-sum;
			}
			else{
				if(xx==true){
					x=x-sum;
					xx=false;
				}
				else y=y+sum;
			}
			p=false;
		}
		else if(a[i]=='-'){
			if(flag==true){
				if(xx==true){
					x=x-sum;
					xx=false;
				}
				else y=y+sum;
			}
			else{
				if(xx==true){
					x=x+sum;
					xx=false;
				}
				else y=y-sum;
			}
			p=false;
		}
		else if(a[i]>='a' && a[i]<='z'){
		xx=true;
		c=a[i];
		}
		else if(a[i]>='0' && a[i]<='9' && p==false){
			int ans=0;
			sum=0;
			while(a[j]>='0' && a[j]<='9'){
				sum=sum+(a[j]-'0')*mi(ans);
				j--;
				ans++;
			}
			p=true;
		}
	}
	double w=1.0*y/x;
	cout<<c<<"=";
	if(w==-0) w=0;
	printf("%.3lf",w);
	return 0;
}
//-6+12x=0


2024/8/19 16:20
加载中...