标签:can relevant ack code and 描述 通过 字符 art
题目描述
http://acm.hdu.edu.cn/showproblem.php?pid=1237
代码示例
#include<iostream>
#include<stack>
#include<string>
#include<sstream>
using namespace std;
int main(){
string tem;
while(getline(cin,tem)&&tem!="0"){
tem+=‘ ‘;//最后一个数字不用做单独处理
stack<double>a;stack<string>b;//数字栈;字符栈
string s="";
for(int i=0;i<tem.length();i++){
if(tem[i]!=‘ ‘){
s+=tem[i];
continue;
}
if(s=="+"||s=="-"||s=="*"||s=="/"){
b.push(s);
}
else{
//string 转 double
stringstream ss;
double nums;
ss<<s;
ss>>nums;
if(b.empty()||b.top()=="+"){
a.push(nums);
}
else if(b.top()=="-"){
b.pop();
a.push(-nums);
}
else if(b.top()=="*"){
b.pop();
double x=a.top();a.pop();
a.push(x*nums);
}
else if(b.top()=="/"){
b.pop();
double x=a.top();a.pop();
a.push(x/nums);
}
}
s="";
}
double sum=0;
while(!a.empty()){
sum+=a.top();
a.pop();
}
printf("%.2f\n",sum);
}
}
知识点:
HDU 1237 简单计算器 —— stack、stringstream 的使用
标签:can relevant ack code and 描述 通过 字符 art
原文地址:https://www.cnblogs.com/bjxqmy/p/12494336.html