P2715模拟74分求助
  • 板块灌水区
  • 楼主llxsmy_forever
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/10/8 16:44
  • 上次更新2023/10/27 08:11:16
查看原帖
P2715模拟74分求助
664779
llxsmy_forever楼主2022/10/8 16:44
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
char s[210];
int main()
{
	gets(s+1);
	LL len=strlen(s+1);
	LL bk,bj;
	for(LL i=1;i<=len;i++)
	{
		if(s[i]=='+'){bk=1;break;}
		if(s[i]=='-'){bk=2;break;}
		if(s[i]=='*'){bk=3;break;}
		if(s[i]=='/'){bk=4;break;}
	}
	bool Bk=false,Bj=false;
	for(LL i=1;i<=len;i++)
	{
		if(s[i]=='?')
		{
			if(!Bk&&!Bj) bj=1;
			if(Bk&&!Bj) bj=2;
			if(Bj) bj=3;
			break;
		}
		if(s[i]=='/') Bk=true;
		if(s[i]=='=') Bj=true;
	}
	LL a,b;
	bool v=false;
	for(LL i=1;i<=len;i++)
		if(s[i]>='0'&&s[i]<='9')
		{
			LL f[11],flen=0;
			for(LL j=i;j<=len;j++)
			{
				if(s[j]>='0'&&s[j]<='9') f[++flen]=s[j]-'0';
				else break;
			}
			LL ans=0,now=1;
			for(LL j=flen;j>=1;j--) ans+=f[j]*now,now*=10;
			if(!v) v=true,a=ans;
			else
			{
				b=ans;
				break;
			}
		}
	if(bj==1)
	{
		if(bk==1) printf("%.2f",(b*1.0)-(a*1.0));
		else if(bk==2) printf("%.2f",(b*1.0)+(a*1.0));
		else if(bk==3) printf("%.2f",(b*1.0)/(a*1.0));
		else printf("%.2f",(b*1.0)*(a*1.0));
	}
	else if(bj==2)
	{
		if(bk==1) printf("%.2f",(b*1.0)-(a*1.0));
		else if(bk==2) printf("%.2f",(a*1.0)-(b*1.0));
		else if(bk==3) printf("%.2f",(b*1.0)/(a*1.0));
		else printf("%.2f",(a*1.0)/(b*1.0));
	}
	else
	{
		if(bk==1) printf("%.2f",(a*1.0)+(b*1.0));
		else if(bk==2) printf("%.2f",(a*1.0)-(b*1.0));
		else if(bk==3) printf("%.2f",(a*1.0)*(b*1.0));
		else printf("%.2f",(a*1.0)/(b*1.0));
	}
	return 0;
}
2022/10/8 16:44
加载中...