求调
查看原帖
求调
1363695
meileya楼主2024/10/23 23:12

样例过了,测试点1在本地也过了 ,为什么0tps

#include<iostream>
using namespace std;
int anum,knum,mint,mchar='+';
char ch;
int main(){
	while(1){
		char c=getchar();
		if(c=='=') break;
		if(isdigit(c)){//数字
			mint*=10;
			mint+=int(c-'0');
		}else if(c=='+'||c=='-'){//加减
		    //处理上一个数
		    if(mint!=0){
				if(mchar=='+') knum-=mint;
				else knum+=mint;
				mint=0;
			}
			mchar=c;
		}else{//未知数
			if(mchar=='+') anum+=mint;
			else anum-=mint;
			ch=c;
			mint=0;
		}
	}//'='号前
	if(mint!=0){
		if(mchar=='+') knum-=mint;
		else knum+=mint;
		mint=0;
	}
	mint=0;
	mchar='+';
	while(1){
		char c=getchar();
		if(c=='\n') break;
		if(isdigit(c)){//数字
			mint*=10;
			mint+=int(c-'0');
		}else if(c=='+'||c=='-'){//加减
		    //处理上一个数
		    if(mint!=0){
				if(mchar=='+') knum+=mint;
				else knum-=mint;
				mint=0;
			    }
			    mchar=c;
		}else{
			if(mchar=='+') anum-=mint;
			else anum+=mint;
			ch=c;
			mint=0;
		}
	}//'='号后
	if(mint!=0){
		if(mchar=='+') knum+=mint;
		else knum-=mint;
		mint=0;
	}
	cout<<anum<<' '<<knum<<' '<<ch<<endl;
	printf("%c=%.3lf\n",ch,1.0*knum/anum);
	return 0;
}
2024/10/23 23:12
加载中...