当前位置:网站首页>【PTA】L2-033 Simple Calculator (25 points)
【PTA】L2-033 Simple Calculator (25 points)
2022-08-07 14:41:00 【JKL27】
题目链接
L2-033
题目叙述和输入、输出格式等见上面的链接.
输入样例 1:
5
40 5 8 3 2
/ * - +
输出样例 1:
2
输入样例 2:
5
2 5 8 4 4
* / - +
输出样例 2:
ERROR: 5/0
实现思路
由于顺序符号这些都已经是题目给定的,所以就不用进行其他处理,按照输入顺序入栈即可.
while循环结束的条件是操作符栈(optr)为空;若其不为空,则从操作数栈(opnd)中按顺序取出 n2 和 n1,运算结果重新入opnd栈(如果除数为0,则进行错误提示Error,然后直接return即可).
循环结束后,操作数栈栈顶应该还剩下一个元素,输出它.
实现代码(C++)
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<int> opnd; // 操作数栈
stack<char> optr; // 操作符栈
int n;
cin >> n;
for (int i = 0; i < n; i++) {
int n;
cin >> n;
opnd.push(n);
}
for (int i = 0; i < n - 1; i++) {
char c;
cin >> c;
optr.push(c);
}
while (!optr.empty()) {
int n1, n2;
n1 = opnd.top(); opnd.pop();
n2 = opnd.top(); opnd.pop();
char c;
c = optr.top(); optr.pop();
int n3;
switch (c) {
case '+':
n3 = n2 + n1;
break;
case '-':
n3 = n2 - n1;
break;
case '*':
n3 = n2 * n1;
break;
case '/':
if (n1 == 0) {
cout << "ERROR: " << n2 << "/0" << endl;
return 0;
}
n3 = n2 / n1;
break;
}
opnd.push(n3);
}
cout << opnd.top() << endl;
return 0;
}
边栏推荐
- [YOLOv7_0.1] Network structure and source code analysis
- dotnet 获取本机 IP 地址方法
- 【电工学(下)】部分基础概念整理
- mysql主从同步在master机上为slave机添加一同步帐号问题。
- Programming Experts in C Chapter 8 Why Programmers Can't Tell the Difference Between Halloween and Christmas 8.9 How and Why Casting
- Summary of the open surface
- 剑指Offer | 调整数组顺序使奇数位于偶数前面
- 注销/撤销/吊销
- [Add and delete vscode code snippets]
- C专家编程 第8章 为什么程序员无法分清万圣节和圣诞节 8.7 用C语言实现有限状态机
猜你喜欢

自动化测试、测试左移、精准测试,一次性说透

LeetCode 热题 HOT 100(7.盛最多水的容器)

美团&上交开源PromptDet:无需标注,开放世界的目标检测器

AQS同步组件-CyclicBarrier(循环屏障)解析和用例

【YOLOv7】结合GradCAM热力图可视化

嵌入式开发:嵌入式基础–了解微控制器引导过程

雷达的分辨率
![[Add and delete vscode code snippets]](/img/8a/2a959184c715aee7a59bc4cb409722.png)
[Add and delete vscode code snippets]

我,一个软件测试工程师,谈谈我每天的日常工作...

up to date!A summary of all Kaggle competition open source solutions and Top ideas, a total of 477 competitions!
随机推荐
1403. 非递增顺序的最小子序列
基于TCP的聊天系统
Is it safe to use a straight flush in stocks?Will the funds be transferred?
最新!Kaggle所有竞赛开源方案和Top思路汇总,共477场竞赛!
Acwing/3359. 更多奇怪的照片
C Expert Programming Chapter 8 Why Programmers Can't Tell the Difference Between Halloween and Christmas 8.7 Implementing Finite State Machines in C
mysql连接WARN: Establishing SSL connection without server‘s identity verification is not recommended.
HJ6 质数因子
Programming Experts in C Chapter 8 Why Programmers Can't Tell the Difference Between Halloween and Christmas 8.8 Software is more difficult than hardware
C专家编程 第8章 为什么程序员无法分清万圣节和圣诞节 8.2 根据位模式构筑图形
【vscode代码片段增加和删除】
使用同花顺软件炒股安全吗?
云信小课堂 | 基于 NERoom 快速实现在线会议
我住得比较远,有好的开户途径么?手机开户股票开户安全吗?
HJ5 base conversion
HJ2 计算某字符出现次数
Lianshengde W801 series 2-WIFI one-key distribution network, information preservation
Nature | 朱轩/陈福和/袁国勇等证实冠状病毒利用宿主半胱天冬酶-6 促进复制
李沐d2l(九)--模型构造
LeetCode 热题 HOT 100(7.盛最多水的容器)