求助!只AC了1和2 只有32分有注释()
查看原帖
求助!只AC了1和2 只有32分有注释()
993122
xiaorunrun520楼主2023/6/24 21:55
#include<bits/stdc++.h>
using namespace std;
char shi[1001];
int num(int i){     //计算目前数字的值
	int n = 0, x = 0;
	while(true){
		if(shi[i] == '-'){
			return -n;
		}
		else if('0' <= shi[i] && shi[i] <= '9'){
			n += (shi[i]-'0') * pow(10,x); 
		}
		else{
			return n;
		}
		i--;
		x++;
	}
}
int main(){
	cin>>shi;
	int sum1 = 0, sum2 = 0;
	int len = strlen(shi);
	bool deng = false;
	bool flag = true;   //防止重复遍历一个数字
	for(int i = len-1;i>=0;i--){
		if(shi[i] == '-' || shi[i] == '+' || shi[i] == '=' || shi[i] == 0){
			flag = true;
		}
		if(shi[i] == '=') deng = true;//判断数字在等号哪边
		if('0' <= shi[i] && shi[i] <= '9' && flag){
			if(deng) sum1 -= num(i);
			else sum1 += num(i);
			flag = false;
		}
		else if('a' <= shi[i] && shi[i] <= 'z' && flag){
			if(deng) sum2 += num(i-1);
			else sum2 -= num(i-1);
			flag = false;
		}
	}
	cout<<"x=";
	cout<<fixed<<setprecision(3)<<(sum1*1.00)/(sum2*1.00);//所有常数之和除所有系数之和
	return 0;
}
2023/6/24 21:55
加载中...