WA on#5#11
查看原帖
WA on#5#11
1127560
SR_G_B_ysqd1602楼主2024/9/6 21:27
#include<bits/stdc++.h>
using namespace std;
//#define double long double
double d,e,f;
int flag;
string s,t;
int ans,qq,hj;
char ysf,dt;
double yunsuan(double a,double b){
	switch (ysf){
		case '+':return a+b;break;
		case '-':return a-b;break;
		case '*':return a*b;break;
		case '/':return a/b;break;
		default :return 0;
	}
	
}
double nys(double a,double b){
	
	switch (ysf){
		case '+':return a-b;break;
		case '-':return a+b;break;
		case '*':return a/b;break;
		case '/':return a*b;break;
		default :return 0;
	}
}
void ys(){
	if(d==-1)d=nys(f,e);
	if(e==-1)e=nys(f,d);
	if(f==-1)f=yunsuan(d,e);
}
bool pd(char c){
	switch (c){
		case '+':return 1;break;
		case '-':return 1;break;
		case '*':return 1;break;
		case '/':return 1;break;
		default :return 0;
	}
}
int main(){
	while(cin>>t)s+=t;
	int l=s.size();
	for(int i=1;i<=l;i++){
		if(pd(s[i-1]))ysf=s[i-1],qq=i-1;
		if(s[i-1]=='?')ans=i-1;
		if(s[i-1]=='=')hj=i-1;
	}
	for(int j=0;j<qq;j++){
		if(s[j]<'0'||s[j]>'9')break;
		d=d*10+s[j]-'0';
	}
	for(int j=qq+1;j<=hj;j++){
		if(s[j]<'0'||s[j]>'9')break;
		e=e*10+s[j]-'0';
	}
	for(int j=hj+1;j<l;j++){
		if(s[j]<'0'||s[j]>'9')break;
		f=f*10+s[j]-'0';
	}
	if(ans<qq)flag=1,d=-1;
	else if(ans>hj)flag=3,f=-1;
	else flag=2,e=-1;
	ys();
	switch(flag){
		case 1:printf("%.2lf",d);break;
		case 2:printf("%.2lf",e);break;
		case 3:printf("%.2lf",f);break;
	}
	return 0;
}
2024/9/6 21:27
加载中...