/**************************************************************
作者:陈新
邮箱: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. 本学期C#学习个人总结

    本学期C#的学习结束了,我在这里作一下总结.我还记得陈老师在第一节课上说过,学任何东西,都要学结构,否则你不会学好.当我听到这句话的时候,没有放在心上,可是随着C#学习的不断深入,我越来越发现许多知识 ...

  2. objectarx 读取外部DWG图到当前图形

    void CTrimeDraw::MyReadDwgFile(CString str){ AcDbDatabase pExternalDb(Adesk::kFalse); // 外部图形数据库 if ...

  3. credential for git

    1, 编辑~/.gitconfig文件怎加如下配置 [credential] helper = store 2,执行 git pull.输入username, password. 3.检查~/.git ...

  4. 从Scratch到Python——python turtle 一种比pygame更加简洁的实现

    从Scratch到Python--python turtle 一种比pygame更加简洁的实现 现在很多学校都开设了Scratch课程,学生可以利用Scratch创作丰富的作品,然而Scratch之后 ...

  5. vue--vant组件库Dialog弹出框

    安装vant UI框架: cnpm install vant –-save-dev 导入组件-在main.js里: import Vant from 'vant'; import'vant/lib/v ...

  6. 括号生成(Java实现)

    题目: 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n =3,生成结果为: [ "((()))", "(()( ...

  7. vSphere虚拟化平台升级注意事项

    关注嘉为科技,获取运维新知 一. Vmware生命周期查询 目前,绝对部分企业均使用VMware vSphere 来构建云计算基础架构,从而减少运行的服务器数量,降低资金成本和运营成本,提高业务灵活性 ...

  8. spring boot2 kafka

    一.软件版本 1.linux:centos6 2.zookeeper:zookeeper-3.4.1 3.kafka:kafka_2.12-2.2.0 4.jdk:1.8 5.instelliJ Id ...

  9. C语言实验一(1)

    #include<stdio.h>int main(){ int a,b,sum; a=123; b=456; sum=a+b; printf("sum is %d\n" ...

  10. 『高性能模型』HetConv: HeterogeneousKernel-BasedConvolutionsforDeepCNNs

    论文地址:HetConv 一.现有网络加速技术 1.卷积加速技术 作者对已有的新型卷积划分如下:标准卷积.Depthwise 卷积.Pointwise 卷积.群卷积(相关介绍见『高性能模型』深度可分离 ...