博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单计算器 (栈)
阅读量:7092 次
发布时间:2019-06-28

本文共 1491 字,大约阅读时间需要 4 分钟。

 

#include
#include
#include
#include
#include
using namespace std;int main(){ stack
num; double n,t; char f; while (cin >> n) { if (getchar() =='\n' && n == 0) break; double sum=0; num.push(n); while (cin >> f >> n) { if (f == '+') num.push(n); if (f == '-') num.push(-n); if (f == '*') { t = n * num.top(); num.pop(); num.push(t); } if (f == '/') { t = num.top() / n; num.pop(); num.push(t); } if (getchar() == '\n') break; } while (!num.empty()) { sum += num.top(); num.pop(); } printf("%.2lf\n", sum); }}

 

  

#include
#include
#include
#include
#include
using namespace std;int main(){ double num[205], n; char f; while (cin >> n) { int sum = 0; num[0] = n; if (getchar() == '\n'&&n == 0)break; while (1) { cin >> f >> n; if (f == '*')num[sum] *= n; else if (f == '/')num[sum] /= n; else if (f == '+')num[++sum] = n; else num[++sum] = -n; if (getchar() == '\n')break; } n = 0; for (int i = 0; i <= sum; i++) n += num[i]; printf("%.2lf\n", n); } return 0;}

  

读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。

Input测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
Output对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。 

Sample Input

1 + 24 + 2 * 5 - 7 / 110

Sample Output

3.0013.36

 

转载于:https://www.cnblogs.com/edych/p/7207795.html

你可能感兴趣的文章
Linux防火墙iptables学习笔记(三)iptables命令详解和举例
查看>>
Oracle Database 12c新特性汇总页面
查看>>
Exchange 2016 数据库副本自动分配新功能
查看>>
解决 WP迁移后出现的404错误
查看>>
Python 学习日记第四篇 -- 函数,文件
查看>>
docker运行nginx为什么要使用 daemon off
查看>>
Linux 系统里用户管理
查看>>
上汽集团数据业务部高级总监刘峰:突破瓶颈 激发数据生产力
查看>>
跟我一起数据挖掘(20)——网站日志挖掘
查看>>
HTTPS部署笔记
查看>>
如何优雅的编写 JavaScript 代码
查看>>
MySQL 聚合函数
查看>>
Ubuntu16.10安装Ocata之2:Keystone
查看>>
IGMPv3
查看>>
ZeroMQ(java)之Router/Dealer模式
查看>>
Linux下的文件查找命令
查看>>
数据分析软件SPSS22的授权及汉化
查看>>
TCP/IP协议碎碎念
查看>>
django 将表数据通过API展示到页面上
查看>>
linux用户登录检测发送邮件提醒
查看>>