#include<stdio.h> int main() { char s[1000],a[1000]; int b[1000]; int i,j,k,top1=-1,top2=-1; gets(s); for(i=0;s[i]!='\0';i++) { if(s[i]=='(') { b[++top2]=-99999; } if(s[i]=='+'||s[i]=='-'||s[i]=='*'||s[i]=='/') { a[++top1]=s[i]; } if(s[i]>='0'&&s[i]<='9') { b[++top2]=s[i]-'0'; } if(s[i]==')') { int sum=0; if(a[top1]=='+') { while(b[top2]!=-99999) { sum+=b[top2--]; } b[top2]=sum; } else if(a[top1]=='*') { sum=1; while(b[top2]!=-99999) { sum*=b[top2--]; } b[top2]=sum; } else if(a[top1]=='/') { sum=1; while(b[top2-1]!=-99999) { sum*=b[top2--]; } sum=b[top2--]/sum; b[top2]=sum; } else if(a[top1]=='-') { while(b[top2-1]!=-99999) { sum+=b[top2--]; } sum=b[top2--]-sum; b[top2]=sum; } top1--; } } printf("%d\n",b[0]); } |
Double click to view unformatted code.