卡循环求diao
查看原帖
卡循环求diao
1043209
lmayyds楼主2024/7/15 11:22
#include<bits/stdc++.h>
using namespace std;//cout<<"b="<<b<<endl;
char k1[1005],k2[1005],l;
int a=0,b=0,y=0,x=-1;
int k=1;
double ans=0;
int main(){
	int i=1;
	while(i++){
		cin>>k1[i];
		if(k1[i]=='=')break;
	}
	cin>>k2[i];
	i=1;
	if(k1[i]=='-')k=-1;
	i=2;
	do{
		if((x==-1||x==2||x==3)&&k1[i]>='0'&&k1[i]<='9'){
			y=10*y+k1[i];
			i++;
			x=2;
			continue;
			cout<<"b="<<b<<endl;
		}
		if(x==2&&k1[i]>='a'&&k1[i]<='z'){
			l=k1[i];
			a+=k*y;
			y=0;
			i++;
			x=1;
			continue;
			cout<<"b="<<b<<endl;
		}
		if((x==1||x==2)&&k1[i]=='+'){
			k=1;
			x=3;
			i++;
			continue;
			cout<<"b="<<b<<endl;
		}
		if((x==1||x==2)&&k1[i]=='-'){
			k=-1;
			x=3;
			i++;
			continue;
			cout<<"b="<<b<<endl;
		}
		if(x==2&&(k1[i]='+'||k1[i]=='-')){
			b+=k*y;
			y=0;
			i++;
			continue;
			cout<<"b="<<b<<endl;
		}
	}while(k1[i]=='=');
	x=0;
	i=1;
	do{
		if((x==0||x==2||x==3)&&k2[i]>='0'&&k2[i]<='9'){
			y=10*y+k2[i];
			i++;
			x=2;
			continue;
			cout<<"b="<<b<<endl;
		}
		if(x==2&&k2[i]>='a'&&k2[i]<='z'){
			x=k2[i];
			a-=k*y;
			y=0;
			i++;
			x=1;
			continue;
			cout<<"b="<<b<<endl;
		}
		if((x==1||x==2)&&k2[i]=='+'){
			k=1;
			x=3;
			i++;
			continue;
			cout<<"b="<<b<<endl;
		}
		if((x==1||x==2)&&k2[i]=='-'){
			k=-1;
			x=3;
			i++;
			continue;
			cout<<"b="<<b<<endl;
		}
		if(x==2&&(k2[i]='+'||k2[i]=='-')){
			b-=k*y;
			y=0;
			i++;
			continue;
			cout<<"b="<<b<<endl;
		}
	}while(!k2[i]);
	ans=b/a;
	cout<<l;
	printf("=%.3f",ans);
}
2024/7/15 11:22
加载中...