P1689 方程求解(传送门)
显示1AC9WA,请大佬帮忙修改
#include <bits/stdc++.h>
using namespace std;
int main(){
int x=0,y=0,z=0,part=1,flag=true;
string s;
getline(cin,s);
for(int i=0;i<s.length();i++){
if(s[i]==' ')continue;
else if(isdigit(s[i])){
switch(part){
case 1:x=x*10+(s[i]-'0');
case 2:y=y*10+(s[i]-'0');
case 3:z=z*10+(s[i]-'0');
}
}
else{
switch(s[i]){
case '+':part++;break;
case '-':part++,flag=false;break;
case '=':part++;
case '?':
switch(part){
case 1:x=-1;
case 2:y=-1;
case 3:z=-1;
}
break;
}
}
}
if(flag){
if(x==-1)cout<<z-y<<endl;
else if(y==-1)cout<<z-x<<endl;
else if(z==-1)cout<<x+y<<endl;
}else{
if(x==-1)cout<<y+z<<endl;
else if(y==-1)cout<<x-z<<endl;
else if(z==-1)cout<<x-y<<endl;
}
}
update:
蒟蒻向大佬求助
此题已AC