样例过了,测试点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;
}