简单计算器

HDU - 1237 - 简单计算器(栈) HDU 1237.简单计算器 Time Limit: 2000/1000 MS (Java/Others)      Memory Limit: 65536/32768 K (Java/Others) Problem Description 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。Input测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个 阅读详情

题目描述:

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

输入:

测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。

输出:

对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。

样例输入:

1 + 2
4 + 2 * 5 - 7 / 11
0

样例输出:

3.00
13.36

还是有点烦躁的一道题,需要细节处理
上代码:

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<stack>
using namespace std;
int main()
{
	string s;
	stack<char> fu;
	stack<double> num;
	double num1,num2;
	while(1)
	{
		getline(cin,s);
		if(s=="0")break;
		for(int i=0;s[i];i++)
		{
			if(isdigit(s[i]))
			{
				num1=0.0;
				while(isdigit(s[i]))
				{
					num1=num1*10+s[i]-'0';
					i++;
				}
				i--;
				num.push(num1);
			}
			if(s[i]=='+'||s[i]=='-')
			{
				if(fu.empty())
				{
					fu.push(s[i]);
				}
				else
				{
					char hao=fu.top();
					fu.pop();
					num1=num.top();
					num.pop();
					num2=num.top();
					num.pop();
					if(hao=='+')
					{
						num.push(num1+num2);
					}
					else
					{
						num.push(num2-num1);
					}
					fu.push(s[i]);
				}
			}
			else if(s[i]=='*'||s[i]=='/')
			{
				char hao=s[i];
				i+=2;
				num2=0.0;
				while(isdigit(s[i]))
				{
					num2=num2*10+s[i]-'0';
					i++;
				}
				i--;
				num1=num.top();
				num.pop();
				if(hao=='*')
				{
					num.push(num1*num2);
				}
				else
				{
					num.push(num1/num2);
				}
			}
		}
		while(!fu.empty())
		{
			char hao=fu.top();
			fu.pop();
			num2=num.top();
			num.pop();
			num1=num.top();
			num.pop();
			if(hao=='+')num.push(num1+num2);
			else num.push(num1-num2);
		}
		printf("%.2lf\n",num.top());
		num.pop();
	}
	return 0;
}
Codeup 简单计算器(栈的应用) 链接:Codeup 简单计算器 题目描述 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。 输入 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。 输出 对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。 样例输入 30 / 90... 阅读详情

相关推荐

用python做简单的计算器,python编写简单计算器

大家好,本文将围绕用python做简单的计算器展开说明,python编写简单计算器是一个很多人都想弄明白的事情,想搞清楚如何用python做计算器需要先了解以下几个事情。上次我用我学习的python做一个简易的计算器,我对计算器进行了,更改优化,变成了一个真正的计算器1.计算机布局2.计算机执行Tkinter 作为 Python GUI 开发工具之一,它具有 GUI 软件包的必备的常用功能。比如,它提供了十多种不同类型的窗口控件、窗口布局管理器、事件处理机制等,加之其开发效率高、代码简洁易读。

a17348的博客 3202

HDU1237简单计算器

简单计算器 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 6400 Accepted Submission(s): 2030 Problem Description 读入一个只包含 +, -, *, / 的非负整数...

记录每天的点点滴滴 605

PTA简单的计算器

  7-1 简单的计算器 (10 分) 编程实现一个简单的计算器,实现两个整数的加、减、乘、除。 注意:输入的数字为整数,可能大于Long.MAX_VALUE (即: 9223372036854775807) 输入格式: 例如输入被除数和除数,除号是“/”: 199818221687230837883277970155607217447/15607605175531087007(除法运算) 输出...

jinyu_mobao的博客 2668

九度OJ 题目1019:简单计算器

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

lhyer的专栏 1024

OpenJudge[简单计算器]之满分代码

OpenJudge[简单计算器]之满分代码 19:简单计算器 查看提交统计提问 总时间限制: 1000ms 内存限制: 65536kB 描述 一个最简单的计算器,支持+, -, *, / 四种运算。仅需考虑输入输出为整数的情况,数据和运算结果不会超过int表示的范围。 输入 输入只有一行,共有三个参数,其中第1、2个参数为整数,第3个参数为操作符(+,-,*,/)。 输出 输出只有一行,一个整数,...

Aresenlee的博客 1055

XDS110 USB Debug Probe连接错误-260:CCS Theia环境下的诊断与修复指南

本文详细解析了CCS Theia环境下XDS110 USB Debug Probe连接错误-260的诊断与修复方法。从硬件连接到驱动状态、固件更新到软件配置,提供了全面的排查指南,帮助开发者快速解决这一常见的调试器通信障碍问题,确保嵌入式开发工作流畅进行。

hope8的博客 281

hdu - 1237 - 简单计算器

题意:输入一个算术表达式,求值(数字为整数,但结果不一定是整数,不存在不合法的输入)。 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1237 ——>>这是中缀表达式的运算。开两个栈,一个用来存操作数,一个用来存运算符。定义3个级别,# 的级别最低,+ 和 - 的级别相同且高于 #,* 和 / 的级别相同且高于 + 和 - ,先往运算符栈放入一个

无节操 2673

内存优化--LOGBACK导致内存告警

一.故事背景 由于开辟新市场需要,开发了新的项部署在海外平台,其中最消耗内存的功能是消费kafka消息(最开始预计一天有1千万的量),部署完之后运行一段时间发现出现内存告警问题。 二.分析问题 出现内存告警,(新项目是低配置机器 2C4G * 2台)第一个念头是去查看堆空间设置的情况,看到jvm启动命令中堆空间都是直接指定大小,说明问题不是出在堆空间 -Xmx3g -Xms3g 先不管这些,去查看总的内存使用情况,发现总的内存空间使用将近有92% = 3.68G,那么这多出来使用的0.6

qq_33199919的博客 6051

PTA - 简单计算器

习题6-7 简单计算器 (20分) 模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。 输入格式: 输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。 输出格式: 在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。 输入样例: ...

Rainiwalk的博客 2万+

【TensorRT】TensorRT C# API 项目介绍:基于C#与TensorRT部署深度学习模型(上篇)

开发了TensorRT C# API 2.0版本,该版本在开发时充分考虑了上一版本应用时出现的问题,并进行了改进。同时在本版本中,我们对接口进行了优化,使用起来更加简单,并同时提供了相关的应用案例,方便开发者进行使用。

grape_yan的博客 3038

【医学影像】Deep Learning for Automatic Pneumonia Detection

写在前面的话: 这篇论文是北美放射学会(RSNA)在Kaggle平台上托管的肺炎区域检测挑战赛取得第二名成绩的解决方案。因为笔者需要用到其中的图像增强方案,因此本篇博客只介绍了数据集和图像增强,关于模型的改进和其它改进点没有涉及。 论文地址:https://arxiv.org/abs/2005.13899 代码地址:https://github.com/tatigabru/kaggle-rsna 比赛地址:https://www.kaggle.com/c/rsna-pneumonia-detection-c

chenzhoujian_的博客 1567

简单计算器【简单工厂模式】

题目要求: 设计一个可以实现+、-、*、/ 四种运算的简单计算器。 UML图: 代码: //工厂类: //包含逻辑判断,负责创建四种不同的操作类 //依赖于操作类 //ps:jdk1.8中不支持switch public class OperFactory { public static Operation...

二喵君的博客 1514

西门子博途系列学习笔记SCL(三)______自由口通讯(RS485轮询程序)

西门子博途V16系列学习笔记SCL(三)___自由口通讯轮询程序(RS485) 西门子博途系列学习笔记SCL(三)______自由口通讯(RS485轮询程序) 文章目录西门子博途V16系列学习笔记SCL(三)___自由口通讯轮询程序(RS485)前言一、FreePort自由口通讯是什么?二、使用步骤1.模块参数定义2.定义FB功能块参数:3.程序代码如下(每天写代码100行,学不会你来找我):总结 前言 很长时间都没有更新了,主要是最近在学习罗克韦尔的STUDIO5000PLC编程软件,怎么说,和博

weixin_42940283的博客 1万+

016:简单计算器

一般形式: switch(表达式){ case 常量表达式1: 语句1; case 常量表达式2: 语句2; … case 常量表达式n: 语句n; default: 语句n+1; } 工作原理: 对表达式(通常是变量)进行一次计算。 把表达式的值与结构中 case 的值进行比较。 如果存在匹配,则执行与 case 关联的代码。 代码执行后,break语句阻止代码跳入下一个 case 中继续执行。 如果没有 case 为真,则使用default语句。

wo_ai_luo_的博客 3429

OPC与AI智能体集成实战:一人公司的技术栈构建与避坑指南

1. 先搞清楚“一人公司”和“AI工具”到底在解决什么问题 最近看到不少关于“裸辞搞OPC一人公司”和“AI时代骗局”的讨论,结合搜索热词里高频出现的 openclaw 、 AI编程 、 OPC ,我觉得有必要把这里面的水搅一搅,说点实在的。 首先得拆开看。标题里混了三个东西: 一人公司 、 OPC/OpenClaw 、 AI培训 。它们被放在一起讨论“骗局”,但本质上解决的是不同层面的问题。 一人公司 ,或者说个人工作室、独立开发者模式,核心是 用最小化团队(甚至一个人)去承接项目、开发产品或提供服务 。

weixin_29038345的博客 320

Python 爬虫实战:就业市场趋势数据抓取与行业洞察

在当今竞争激烈的就业市场中,了解行业趋势和就业形势对于求职者、学生以及人力资源专业人士来说至关重要。通过获取和分析就业市场数据,我们可以深入了解不同行业的招聘需求、薪资水平、技能要求等关键信息,从而为职业规划和人才发展提供有力支持。

yansideyucsdn的博客 1406

PTA 简单计算器

L2-3 简单计算器模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。

qq_56361183的博客 2127

医学图像的对抗攻击:模型安全性与鲁棒性分析

医学图像的对抗攻击:模型安全性与鲁棒性分析 ,人工智能,计算机视觉,大模型,AI,本文围绕医学图像的对抗攻击展开,分析了其对AI模型的威胁。介绍了对抗样本定义、攻击原理,以及FGSM、BIM、PGD等常见攻击方法,还给出了相关代码示例。阐述了攻击对模型诊断准确性和可信度的影响,提出对抗训练、输入预处理、模型集成等提升模型安全性与鲁棒性的方法,探讨了评估指标、数据集和流程,分析了实际应用中的挑战与应对策略,最后展望了未来发展趋势。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 18万+

C++ 简单计算器

C++实现简单的计算器 实现一个简单的计算器,可以实现对数字的加减乘除运算并输出显示结果。 完整代码 #include <iostream> using namespace std; int main() { char op; float num1, num2; cout << "输入运算符:+、-、*、/ : "; cin >...

weixin_45743799的博客 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: Bomb
下一篇: Train Problem II
大橘为重eleven
博客等级 码龄8年 35粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值