/**************************************************************
作者:陈新
邮箱:cx2pirate@gmail.com
用途:hdu1237
时间:2014.3.4 23:17
编译环境 : g++
数据:10308543 2014-03-15 20:45:36 Accepted 1237 140MS 424K 1948 B G++ 超级旅行者
*************************************************************/ #include <iostream>
#include <stack>
#include <iomanip> using namespace std; typedef struct{
stack<double> nums;
char op;
}EXPRESSION; bool endingCheck();
double caculate(double firstNum,double secondNum,char op);
void caculateExpression(EXPRESSION * pExpr); int main(){
EXPRESSION expr;
double firstNum = ;
while(cin >> firstNum){
if(endingCheck())
{
if(firstNum != ){
cout << fixed << setprecision() << firstNum << endl;
continue;
}
else{
break;
}
}
else{
expr.nums.push(firstNum);
} char op;
while(op = cin.get()){
double thirdNum;
cin >> thirdNum;
if(op == '+' || op == '-'){
caculateExpression(&expr);
expr.nums.push(thirdNum);
expr.op = op;
}
else{
double secondNum = expr.nums.top();
expr.nums.pop();
expr.nums.push(caculate(secondNum,thirdNum,op));
}
if(endingCheck()){
caculateExpression(&expr);
break;
}
} cout << fixed << setprecision() << expr.nums.top() << endl;
expr.nums.pop();
}
return ;
} bool endingCheck(){
return cin.get() == '\n';
} double caculate(double firstNum,double secondNum,char op){
if(op == '+'){
return firstNum + secondNum;
}
else if(op == '-'){
return firstNum - secondNum;
}
else if(op == '*'){
return firstNum * secondNum;
}
else if(op == '/'){
return firstNum / secondNum;
}
} void caculateExpression(EXPRESSION * pExpr){
if(pExpr ->nums.size() == ){
return;
}
else{
double secondNum = pExpr ->nums.top();
pExpr ->nums.pop();
double firstNum = pExpr ->nums.top();
pExpr ->nums.pop();
pExpr ->nums.push(caculate(firstNum,secondNum,pExpr ->op));
}
}

最新文章

  1. css知识点整理
  2. Linux SHELL 命令入门题目(一)
  3. Css概要与选择器,刻度单位
  4. python中的字符串操作
  5. Eclipse内存不够解决办法
  6. ubuntu 添加管理员账户
  7. 关于带透明度的灰度层的show、hide
  8. Javascript中函数的四种调用方式
  9. Class hierarchy of UIResponder as well as subclasses of UIView and UIControl
  10. JavaScript 中的算术运算
  11. PHP优化杂烩
  12. IIS7.5 APPCMD 简单用法及示例
  13. 安装arcgis server 10.2遇到的问题总结
  14. Cloud Native 云化架构阅读笔记
  15. Trie树详解及其应用
  16. [微软].net2.1 的兼容支持情况.
  17. Linux 小知识翻译 - 「i386」是什么?
  18. CSS:绝对定位布局案例 position布局实例
  19. Django的URL别名
  20. css3写等腰三角形

热门文章

  1. JS经典面试题汉诺塔
  2. Git初识学习
  3. 闽南师范大学&#183;大英A3复习专题
  4. time series 时间序列 | fractional factorial design 部分要因试验设计
  5. HTML CSS 特殊字符表
  6. element ui的 el-dropdown-item标签点击事件
  7. cowboy源码分析(二)
  8. 事务,mybatis
  9. 构建可扩展的微博架构(qcon beijing 2010演讲)#高并发经验值#
  10. C++(实验二)