计算系数错误,求助大佬
查看原帖
计算系数错误,求助大佬
178194
前进四楼主2021/7/6 09:48
#include<bits/stdc++.h>
#include<cmath>
using namespace std;
int main(){
	int zxs=0;//真系数 
	int cs=0;//常数 
	int xs=0;//工具系数 
	int sum=1;//标记 
	char a[10001];//字符串 
	cin>>a;
	int dy;//等于号在字符串中的位置 
	int l=strlen(a);//字符串长 
	for(int i=0;i<l;i++){
		if(a[i]=='=') dy=i;//记录等号位置 
	}
	for(int i=0;i<dy;i++){//等号左边 
		sum=1;xs=0;//归0 
		if(a[i]<'0'||a[i]>'9')//不为数字 
			if(a[i]!='+'&&a[i]!='-'&&a[i]!='='){//不为加、减、等于
					for(int j=i;j>=0;j--){//倒着搜索
						if(a[j]>='0'||a[j]<='9'){//如果有数字(系数) 
						 	xs+=(int(a[j])-48)*sum;//存储系数 
						 	sum*=10;//标记乘十
						}
						if(a[j]=='-'){
							zxs+=xs-2*xs;
							break;
						}
						if(a[j]=='+'||j==0){
							zxs+=xs;
							break;
						}
			}
	}
	}
	
	for(int i=l;i>dy;i--){//等号右边 
		sum=1;xs=0;//归0 
		if(a[i]<'0'||a[i]>'9')//不为数字 
			if(a[i]!='+'&&a[i]!='-'&&a[i]!='='){//不为加、减、等于 
					int q=i;//i为字母系数(未知数)赋值给q
					for(int j=q;j>=0;j--){//倒着搜索
						if(a[j]>='0'||a[j]<='9'){//如果有数字(系数) 
						 	xs+=(int(a[j])-48)*sum;//存储系数 
						 	sum*=10;//标记乘十
						}
						if(a[j]=='-'){
							zxs-=xs-2*xs;
							break;
						}
						if(a[j]=='+'||j==0){
							zxs-=xs;
							break;
						}
			}
	}
	cout<<zxs;
	}
	
	return 0;
}


2021/7/6 09:48
加载中...