/**************************************************************
作者:陈新
邮箱: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));
}
}

HDU1237的更多相关文章

  1. hdu1237 简单计算器[STL 栈]

    目录 题目地址 题干 代码和解释 参考 题目地址 hdu1237 题干 代码和解释 解本题时使用了STL 栈,要记得使用#include<stack>. 解本题时使用了isdigit()函 ...

  2. 简单计算器--hdu1237(栈的运用)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1237  这是单纯的本题答案: #include<stdio.h> #define N 11 ...

  3. HDU1237 简单的计算器 【堆】+【逆波兰式】

    简单的计算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  4. hdu-1237 简单计算器---中缀表达式转后缀表达式

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1237 题目大意: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. 思路 ...

  5. HDU1237 简单计算器 2016-07-24 13:34 193人阅读 评论(0) 收藏

    简单计算器 Problem Description 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. Input 测试输入包含若干测试用例,每个测试用例占一行,每行不超过 ...

  6. HDU1237 简单计算器 【栈】+【逆波兰式】

    简单计算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  7. HDU1237 简单计算器 栈

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1237 题目大意:读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. 题目分 ...

  8. C——简单计算器(HDU1237)

    题目: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值.  Input测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔 ...

  9. hdu-1237简单计算器(栈的运用)

    http://acm.hdu.edu.cn/showproblem.php?pid=1237 简单的栈的运用. 首先将数字和运算符分离,分别保存在两个数组中,然后按原来的式子的顺序,首先将第一个数和第 ...

随机推荐

  1. Javascript的千分位和去除千分位

    1.转成千分位,保留两位 comdify(n) { let num = Number(n); let re = /\d{1,3}(?=(\d{3})+$)/g; let n1 = num.toFixe ...

  2. Summary on deep learning framework --- Torch7

    Summary on deep learning framework --- Torch7  2018-07-22 21:30:28 1. 尝试第一个 CNN 的 torch版本, 代码如下: -- ...

  3. Flutter安装之后cmd运行错误解决

    当把Flutter环境变量配置之后,打开cmd输入:flutter 出现如下错误: 'MySQL' is not recognized as an internal or external comma ...

  4. windows主用python3 个别程序使用python2的方法

    原始需求: 平时执行命令都默认用python3,遇到个别程序需要python2的时候也能用python2. 实现: 1.先装python3,添加环境变量,这时在cmd里输入python可以显示出是版本 ...

  5. OO第四次博客作业!

    oo第四次博客作业 一.测试与正确性论证比较 测试只是单方面片面的证明对于当前的输入程序是正确的,测试只能证明程序有错误,不能说明程序是对的. 正确性论证是程序达到预期目的的一般性陈述,是通过规范化的 ...

  6. C语言多种方法求解字符串编辑距离问题的代码

    把做工程过程经常用的内容记录起来,如下内容段是关于C语言多种方法求解字符串编辑距离问题的内容. { if(xbeg > xend) { if(ybeg > yend) return 0; ...

  7. 安装weblogic

    附:wls1036_generic.jar 链接:https://pan.baidu.com/s/1W5g-SHeKL96yrOeDKJJoxw 提取码:vxft 注:以下安装步骤是一个前辈整理的,我 ...

  8. 瀑布流布局(等宽不等高jQuery)

    在百度上看见的好多都是引用Masonry插件   ,之后我自己尝试了一个没有使用插件的 <body> <div id="main"> <div cla ...

  9. 解决:SSM框架中普通类调用Service的问题 (转)

    http://blog.csdn.net/gwd1154978352/article/details/73480959

  10. ANSI/ISO C 关键字(汇总)

    ANSI/ISO C 关键字 汇总: auto  break  case  char  const  continue  default  do  double  else  enum  extern ...