前缀表达式-怎样用空格分隔一个字符串

 1 #include<iostream>
 2 #include<cstdlib>
 3 #include<stack>
 4 #include<string>
 5 #include<sstream> 
 6 using namespace std;
 7 stack<double>s;
 8 char a[100][20];
 9 int main(){
10     string str;
11     getline(cin, str);
12     istringstream iss(str);
13     int i = 0;
14     while(!iss.eof()){
15         iss>>a[i++];
16     }
17     i--;
18     for(;i>=0;i--){
19         if(atof(a[i])!=0)
20             s.push(atof(a[i]));
21         else{
22             string si = a[i];
23             double d1 = s.top();
24             s.pop();
25             double d2 = s.top();
26             s.pop();
27             if(si=="*")d1*=d2;
28             else if(si=="+")d1+=d2;
29             else if(si=="-")d1-=d2;
30             else if(si=="/")d1/=d2;
31             s.push(d1);
32         }
33     }
34     printf("%f\n",s.top());
35     return 0;
36 }

备注:主要就是利用标黄的那几行!

非常好用!

posted @ 2020-01-05 11:13  timeaftertime  阅读(232)  评论(0编辑  收藏  举报