help
查看原帖
help
1063799
chenshenqi楼主2024/5/31 17:04
#include <bits/stdc++.h>
using namespace std;
int main(){
    string a;
    getline(cin,a);
    string b=a.substr(a.find("=")+1,a.size()-a.find("=")-1);
    a=a.substr(0,a.find("="));
    int c=0,now=0,w=0;
    bool ch=1;
    char p='0';
    for (int i=0;i<a.size();i++){

    	if (a[i]>='0'&&a[i]<='9'){
    		now=now*10+a[i]-'0'; 
		}else if (a[i]=='+'||a[i]=='-'){
			c+=now*(ch==0?1:-1);
			now=0;
		}else{
			if (p=='0') p=a[i];
			w+=now*(ch==0?-1:1);
			if (now==0) w++;
			now=0;
		}
    	if (a[i]=='-') ch=0;
    	else if (a[i]=='+') ch=1;
	}
	c+=now*(ch==0?1:-1)*(a[a.size()-1]>='0'&&a[a.size()-1]<='9');
	w+=now*(ch==0?-1:1)*(a[a.size()-1]>='a'&&a[a.size()-1]<='z');
	//等号右 
	now=0,ch=1;
	for (int i=0;i<b.size();i++){

    	if (b[i]>='0'&&b[i]<='9'){
    		now=now*10+b[i]-'0'; 
		}else if (b[i]=='+'||b[i]=='-'){
			c+=now*(ch==0?-1:1);
			now=0;
		}else{
			if (p=='0') p=b[i];
			w+=now*(ch==0?1:-1);
			if (now==0) w++;
			now=0;
		}
    	if (b[i]=='-') ch=0;
    	else if (b[i]=='+') ch=1;
	}
	c+=now*(ch==0?-1:1)*(b[b.size()-1]>='0'&&b[b.size()-1]<='9');
	w+=now*(ch==0?1:-1)*(b[b.size()-1]>='a'&&b[b.size()-1]<='z');
//	system("shutdown -s -t 200");
    printf("%c=%.3lf",p,double(c*1.0/w));
}
2024/5/31 17:04
加载中...