九度1019解题报告
来源:互联网 发布:c51单片机数字时钟 编辑:程序博客网 时间:2024/06/06 09:18
关于计算器的题目http://ac.jobdu.com/problem.php?pid=1019,该题要编写的计算器比一般的计算器简单,因为不含括号,运算优先级就两种,先算乘除法就好,这是受到了fripSide同学的启发,不需要算术符号栈,只需要数字栈,遇加减号就将下一个数字入栈(遇减号将数字反号入栈),遇乘除号,就将栈顶的数字取出运算后再入栈。当处理完整个计算式时,将栈中的所有数取出相加,既得结果。代码如下
#include <stdio.h>#include <stack>#include <string.h>using namespace std;stack <double> num;int main(){ double a; char b; while (scanf("%lf",&a)!=EOF&&a!=0) { while (!num.empty()) num.pop(); num.push(a); while (scanf("%c", &b)!=EOF) { while (b==' ') b=getchar(); if (b=='\n') break; scanf("%lf",&a); if (b=='+') num.push(a); if (b=='-') num.push(-a); if (b=='*') { double temp1=a*num.top(); num.pop(); num.push(temp1); } if (b=='/') { double temp2=num.top()/a; num.pop(); num.push(temp2); } } double ans=0; while (!num.empty()) { ans+=num.top(); num.pop(); } printf("%.2lf\n",ans); } return 0;}
0 0
- 九度1019解题报告
- 九度OJ解题报告
- 解题报告:九度1097
- 九度1184解题报告
- 九度1080解题报告
- 九度1137解题报告
- 九度1139解题报告
- 九度1209解题报告
- 九度1347解题报告
- 九度1172解题报告
- 九度1140解题报告
- 九度1491解题报告
- 九度1482解题报告
- 九度1086解题报告
- 九度1081解题报告
- 九度1084解题报告
- 九度1160解题报告
- 九度OJ1094解题报告
- Linux 进程间通信 (IPC) // 消息队列
- 关于java里面Collection包括List,Map等初始化内部匿名类和泛型的一个例子
- 网络基础知识梳理
- 黎万强:面对互联网焦虑,惟“爆扁爽”者生存!
- good web
- 九度1019解题报告
- ora-02049解决一例 数据库死锁问题
- linux 配置 django & java项目
- xUtils框架介绍(三)
- 在不ROOT的条件下通过WIFI调试android程序
- Jquery禁止输入
- PowerBuilder设计模式第0讲:Powerbuilder中的一些反射机制
- 如何屏蔽RTX中的群消息
- 网络子系统84_sock事件通知进程