我的代码不知道为什么,只会输出算式的第一个数字,求大佬指点, 帮助者必关!
#include<iostream>
#include<queue>
using namespace std;
string s,x="";
queue<int> q,a;
int main(){
cin>>s;
int ls=s.size();
int sum=0;
for(int i=0;i<ls;i++){
if(s[i]!='+'&&s[i]!='*'){
sum*=10;
sum+=(s[i]-'0');
sum%=10000;
}else{
q.push(sum%10000);
sum=0;
x=s[i]+x;
}
}
int lx=x.size();
int t=1;
int n=q.front(),m=0,bj=0;
for(int i=0;i<lx;i++){
if(x[i]=='*'){
m=q.front();
q.pop();
a.push(m*n%10000);
bj=1;
}else{
m=q.front();
q.pop();
if(bj==1){
n=q.front();
q.pop();
bj=0;
}
a.push(m);
}
}
int ans=0;
int la=a.size();
for(int i=1;i<=la;i++){
int a_i=a.front();
ans+=a_i;
ans%=10000;
}
cout<<ans%10000<<endl;
return 0;
}