42分求调
查看原帖
42分求调
1330630
jinzhongqic2905楼主2025/7/25 23:07
#include<iostream>
#include<string>
using namespace std;
string str;
string tmp;
int turn(string s)
{
	int num=0;
	for(int i=0;i<s.size();i++)
	{
		num=num*10+s[i]-'0';
	}
	return num;
}
int main()
{
	getline(cin,tmp);
	for(int i=0;i<tmp.size();i++)
	{
		if(tmp[i]!=' ')
		{
			str+=tmp[i];
		}
	}
	int p1;
	int type;
	if(str.find("+")!=string::npos)
	{
		p1=str.find("+");
		type=1;
	}
	else if(str.find("-")!=string::npos)
	{
		p1=str.find("-");
		type=2;
	}
	else if(str.find("*")!=string::npos)
	{
		p1=str.find("*");
		type=3;
	}
	else
	{
		p1=str.find("/");
		type=4;
	}
	int p2=str.find("=");
	string a,b,c;
	a=str.substr(0,p1);
	b=str.substr(p1+1,p2-p1-1);
	c=str.substr(p2+1);
	double ans;
	switch(type)
	{
		case 1:
			if(a=="?")
			{
				ans=turn(c)-turn(b);
			}
			else if(b=="?")
			{
				ans=turn(c)-turn(a);
			}
			else
			{
				ans=turn(a)+turn(b);
			}
			break;
		case 2:
			if(a=="?")
			{
				ans=turn(b)+turn(c); 
			}
			else if(b=="?")
			{
				ans=turn(a)-turn(c);
			}
			else
			{
				ans=turn(a)-turn(b); 
			}
			break;
		case 3:
			if(a=="?")
			{
				ans=1.0*turn(c)/turn(b);
			}
			else if(b=="?")
			{
				ans=1.0*turn(c)/turn(a);
			}
			else
			{
				ans=turn(a)*turn(b); 
			}
			break;
		case 4:
			if(a=="?")
			{
				ans=turn(b)*turn(c);
			}
			else if(b=="?")
			{
				ans=1.0*turn(a)/turn(c);
			}
			else
			{
				ans=1.0*turn(a)/turn(b);
			}
			break;
	}
	printf("%.2lf\n",ans);
	return 0;
}
2025/7/25 23:07
加载中...