#include<stdio.h> #include<stack> #include<string.h> using namespace std; stack<int> s; void fun(char op) { // printf("%c\n",op); int x,y; if(s.empty()) return ; x=s.top(); s.pop(); // printf("%d\n",x); if(s.empty()) return ; y=s.top(); s.pop(); // printf("x=%d,y=%d\n",x,y); switch(op) { case‘+‘:x+=y; break; case‘-‘:x-=y; break; case‘*‘:x*=y; break; case‘/‘:x/=y; break; } s.push(x); } char ch[10005]; int main() { int len,x,y; gets(ch); // printf("%s\n",ch); len=strlen(ch); // printf("%d\n",len); for(int i=len-1;i>=0;i--) { if(ch[i]==‘ ‘) continue; // printf("%c",ch[i]); if(ch[i]>=‘0‘&&ch[i]<=‘9‘) { int xx=ch[i]-‘0‘; s.push(xx); } else if(ch[i]==‘+‘) fun(ch[i]); else if(ch[i]==‘-‘) fun(ch[i]); else if(ch[i]==‘*‘) fun(ch[i]); else if(ch[i]==‘/‘) fun(ch[i]); } if(!s.empty()) printf("%d\n",s.top()); s.pop(); return 0; }
#include<iostream> #include<cstdio> using namespace std; int main() { char c; int n,m; scanf("%c",&c); scanf("%d%d",&n,&m); if(c==‘+‘) printf("%d\n",n+m); if(c==‘-‘) printf("%d\n",n-m); if(c==‘*‘) printf("%d\n",n*m); if(c==‘/‘) printf("%d\n",n/m); return 0; }
这代码居然能过。。。。。
大神们快来拯救我。帮我看下代码;
原文地址:http://blog.csdn.net/u010579068/article/details/44837997