只对#4??
查看原帖
只对#4??
1332453
__Florie_楼主2024/6/18 17:01

又是不理解的一天,下载测试点,输出结果一摸一样的,却只对第四个,什么情况...


求教育!

#include<bits/stdc++.h>
using namespace std;
#define ll long long

string s;
char ch;
ll sum,x,k,op,data=1;

int main(){
	cin>>s;
	if(s[0]=='-') op=-1;//op判断正负号  
	else op=1;
	for(int i=0;i<s.size();i++){
		if(s[i]>='0'&&s[i]<='9')
		{
			sum=sum*10+(s[i]-'0')*op*data;//data判断等号左右,移项为kx+b 
			if(i==s.size()-1) k=k+sum;
		}
		else
		{
			if(s[i]!='-'&&s[i]!='+'&&s[i]!='=')
			{
				if(sum==0) x=x+op*data;
				else x=x+sum;
				sum=0;ch=s[i];
			}
			else
			{
				if(s[i]=='+')
				{
					k=k+sum;
					sum=0;op=1;
				}
				else if(s[i]=='-')
				{
					k=k+sum;
					sum=0;op=-1;
				}
				else if(s[i]=='=')
				{
					data=-1;k=k+sum;sum=0;op=1;
				}
			}
		}
	}
	cout<<ch<<"=";
	if(k==0) cout<<0.000;
	else printf("%.3llf",k*(-1.0)/x);
	return 0;
}
2024/6/18 17:01
加载中...