HDU1237 简单计算器
2016-07-24 13:34
393 查看
简单计算器
Problem Description
读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。Input
测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。Output
对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。Sample Input
1 + 2 4 + 2 * 5 - 7 / 11 0
Sample Output
3.00 13.36
——————————————————————————————————————————————————
先把乘除算了,在整体算加,减当负处理,循环两遍#include <iostream> #include <cstdio> #include <cstring> #include <stack> using namespace std; int main() { char str, c; double a, b; stack <double> num; while (scanf("%lf", &a) != EOF) { while (!num.empty()) num.pop(); c = getchar(); if (c == '\n' && a == 0) break; num.push(a); scanf("%c", &c); while (scanf("%lf", &b)) { if (c == '*') { a = num.top(); num.pop(); num.push(a * b); } else if (c == '/') { a = num.top(); num.pop(); num.push(a / b); } else if (c == '+') num.push(b); else if (c == '-') num.push(-b); c = getchar(); if (c == '\n') break; scanf("%c", &c); getchar(); } double ans = 0.0; while (!num.empty()) { ans += num.top(); num.pop(); } printf("%.2lf\n", ans); } return 0; }
相关文章推荐
- MAC pro 初体验
- API使用的Android权限列表(Permissions)
- Spring 框架简介
- POJ2796->单调栈
- 设置编码集(工具类)
- hiho108周即题库1198Memory Allocating Algorithm
- 三次握手与四次挥手
- JavaScript数组的高级用法-reduce和reduceRight详解
- 11_关于SqlMapperConfig.xml
- 频繁项集挖掘算法之FPGrowth
- vim 代码提示功能,让vim可以媲美IDE(转)
- Android最佳性能实践(一)——合理管理内存
- HDU1181 变形课(DFS)
- Linux下安装Git
- Zookeeper中文网
- Swift--加载本地资源文件并遍历
- Tomcat 系统架构与设计模式2
- c++ 重载 覆盖 隐藏特征分析
- Div里CSS控制图片按比例扩大缩小不变形
- 利用反射来设计BaseDao