HDU1237
/**************************************************************
作者:陈新
邮箱: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的更多相关文章
- hdu1237 简单计算器[STL 栈]
目录 题目地址 题干 代码和解释 参考 题目地址 hdu1237 题干 代码和解释 解本题时使用了STL 栈,要记得使用#include<stack>. 解本题时使用了isdigit()函 ...
- 简单计算器--hdu1237(栈的运用)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1237 这是单纯的本题答案: #include<stdio.h> #define N 11 ...
- HDU1237 简单的计算器 【堆】+【逆波兰式】
简单的计算器 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- hdu-1237 简单计算器---中缀表达式转后缀表达式
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1237 题目大意: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. 思路 ...
- HDU1237 简单计算器 2016-07-24 13:34 193人阅读 评论(0) 收藏
简单计算器 Problem Description 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. Input 测试输入包含若干测试用例,每个测试用例占一行,每行不超过 ...
- HDU1237 简单计算器 【栈】+【逆波兰式】
简单计算器 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- HDU1237 简单计算器 栈
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1237 题目大意:读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. 题目分 ...
- C——简单计算器(HDU1237)
题目: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. Input测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔 ...
- hdu-1237简单计算器(栈的运用)
http://acm.hdu.edu.cn/showproblem.php?pid=1237 简单的栈的运用. 首先将数字和运算符分离,分别保存在两个数组中,然后按原来的式子的顺序,首先将第一个数和第 ...
随机推荐
- Javascript的千分位和去除千分位
1.转成千分位,保留两位 comdify(n) { let num = Number(n); let re = /\d{1,3}(?=(\d{3})+$)/g; let n1 = num.toFixe ...
- Summary on deep learning framework --- Torch7
Summary on deep learning framework --- Torch7 2018-07-22 21:30:28 1. 尝试第一个 CNN 的 torch版本, 代码如下: -- ...
- Flutter安装之后cmd运行错误解决
当把Flutter环境变量配置之后,打开cmd输入:flutter 出现如下错误: 'MySQL' is not recognized as an internal or external comma ...
- windows主用python3 个别程序使用python2的方法
原始需求: 平时执行命令都默认用python3,遇到个别程序需要python2的时候也能用python2. 实现: 1.先装python3,添加环境变量,这时在cmd里输入python可以显示出是版本 ...
- OO第四次博客作业!
oo第四次博客作业 一.测试与正确性论证比较 测试只是单方面片面的证明对于当前的输入程序是正确的,测试只能证明程序有错误,不能说明程序是对的. 正确性论证是程序达到预期目的的一般性陈述,是通过规范化的 ...
- C语言多种方法求解字符串编辑距离问题的代码
把做工程过程经常用的内容记录起来,如下内容段是关于C语言多种方法求解字符串编辑距离问题的内容. { if(xbeg > xend) { if(ybeg > yend) return 0; ...
- 安装weblogic
附:wls1036_generic.jar 链接:https://pan.baidu.com/s/1W5g-SHeKL96yrOeDKJJoxw 提取码:vxft 注:以下安装步骤是一个前辈整理的,我 ...
- 瀑布流布局(等宽不等高jQuery)
在百度上看见的好多都是引用Masonry插件 ,之后我自己尝试了一个没有使用插件的 <body> <div id="main"> <div cla ...
- 解决:SSM框架中普通类调用Service的问题 (转)
http://blog.csdn.net/gwd1154978352/article/details/73480959
- ANSI/ISO C 关键字(汇总)
ANSI/ISO C 关键字 汇总: auto break case char const continue default do double else enum extern ...