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