@[Walnutjuice](/user/1185284)
你前面没加break,改一下就ac了
```
#include <bits/stdc++.h>
using namespace std;
int main(){
int part=1,x=0,y=0,z=0;
string s;
bool flag=true;
const int mark=0x3f3f3f;
getline(cin,s);
for(int i=0;i<s.length();i++){
if(s[i]==' ')continue;
if(isdigit(s[i])){
switch(part){
case 1:x=x*10+(s[i]-'0');break;
case 2:y=y*10+(s[i]-'0');break;
case 3:z=z*10+(s[i]-'0');break;
}
}
switch(s[i]){
case '+':part=2;break;
case '-':part=2,flag=false;break;
case '=':part=3;break;
case '?':
if(part==1)x=mark;
if(part==2)y=mark;
if(part==3)z=mark;
break;
}
}
if(flag){
if(x==mark)cout<<z-y<<endl;
else if(y==mark)cout<<z-x<<endl;
else cout<<x+y<<endl;
}else{
if(x==mark)cout<<y+z<<endl;
else if(y==mark)cout<<x-z;
else cout<<x-y<<endl;
}
return 0;
}
by ilibilib @ 2023-11-19 13:59:24