OJ_1101

来源:互联网 发布:网站流量统计系统源码 编辑:程序博客网 时间:2024/06/12 20:08
#include <iostream>#include <string>#include <stack>using namespace std;int getnum(string s,int &i){    int sum=0;    while(s[i]>='0'&&s[i]<='9')    {                               sum=sum*10+s[i]-'0';                               i++;    }    return sum;}void func(){     string s;     while(cin>>s)     {                  stack<int> st;                  for(int i=0;i<s.size();)                  {                          if(s[i]>='0'&&s[i]<='9')                          {                               int t=getnum(s,i);                               st.push(t);                                             }                          else if(s[i]=='+')                          {                               i++;                               int t=getnum(s,i);                               st.push(t);                          }else if(s[i]=='-')                          {                                i++;                                int t=getnum(s,i);                               st.push(-1*t);                          }                          else if(s[i]=='*')                          {                                 i++;                                 int t=getnum(s,i);                                 int top=st.top();                                 st.pop();                                 st.push(top*t);                          }else if(s[i]=='/')                          {                                i++;                                int t=getnum(s,i);                                 int top=st.top();                                 st.pop();                                 st.push(top/t);                            }                                            }                  int sum=0;                  while(!st.empty())                  {                                    sum+=st.top();                                    st.pop();                  }                  cout<<sum<<endl;     }     }int main(int argc, char *argv[]){    //printf("Hello, world\n");func();return 0;}

正确使用栈的练习


题目描述:

对于一个不存在括号的表达式进行计算

输入:

存在多种数据,每组数据一行,表达式不存在空格

输出:

输出结果

样例输入:
6/2+3+3*4
样例输出:
18

0 0
原创粉丝点击