L2-1 简单计算器 (25 分)

本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器。如上图所示,计算器由两个堆栈组成,一个堆栈 S​1存放数字,另一个堆栈
S​2 存放运算符。计算器的最下方有一个等号键,每次按下这个键,计算器就执行以下操作:从S ​1中弹出两个数字,顺序为 n​1和 n2 ;从 S​2中弹出一个运算符 op;执行计算 n​2 op n​1 ;
将得到的结果压回 S1​​ 。直到两个堆栈都为空时,计算结束,最后的结果将显示在屏幕上。

输入格式:

输入首先在第一行给出正整数 N(1<N≤10 ​3 ​​ ),为 S ​1 ​​ 中数字的个数。

第二行给出 N 个绝对值不超过 100 的整数;第三行给出 N−1 个运算符 —— 这里仅考虑 +、-、*、/
这四种运算。一行中的数字和符号都以空格分隔。

输出格式:

将输入的数字和运算符按给定顺序分别压入堆栈 S ​1 ​​ 和 S ​2
将执行计算的最后结果输出。注意所有的计算都只取结果的整数部分。题目保证计算的中间和最后结果的绝对值都不超过10​910​^910​9​​ 。
如果执行除法时出现分母为零的非法操作,则在一行中输出:ERROR: X/0,其中 X 是当时的分子。然后结束程序。

输入样例 1:

5
40 5 8 3 2
/ * - +

输出样例 1:

2

输入样例 2:

5
2 5 8 4 4
∗/−+* / - +∗/−+

输出样例 2:

ERROR: 5/0

#include<stdio.h>
int digit(int a,int b,char c)//计算操作
{if(c=='+')return  a+b;if(c=='-')return a-b;if(c=='*')return a*b;if(c=='/'&&b==0)return -199;//如果出错就返回199;继续后续的ERROR打印if(c=='/')return a/b;else return 0;
}
int main()
{int n;scanf("%d",&n);int a[n];char b[n-1];for(int i=0;i<n;i++)scanf("%d",&a[i]);getchar();//要用getchar吸收空格和回车,一开始搞错了,找了很久的错误。for(int i=0;i<n-1;i++){scanf("%c",&b[i]);getchar(); }int sum=0;int p = n-2;//p是字符数组的下标,因为有n-1个元素,所以末尾元素是n-2for(int i=n-1;i>0;i--){ int tem = a[i-1];a[i-1] = digit(a[i-1],a[i],b[p]);//计算后两位,然后结果给到倒数第二位p--;if(a[i-1]==-199)//哎,等于-199说明错误啦,所以输出然后直接返回。tem是为了存i-1的数值//不然i-1就是-199啦,就会错的一塌糊涂。{printf("ERROR: %d/%d",tem,a[i]);return 0;}}printf("%d",a[0]);//全部计算完之后就只剩下a[0]啦
}

全红很不错

#include<bits/stdc++.h>//c++就比较简单了
using namespace std;int c(int a,int b,char c)
{if(c=='+')return  a+b;if(c=='-')return a-b;if(c=='*')return a*b;if(c=='/')return a/b;else return 0;
}int main()
{int n;cin>>n;stack<int>a;//数字栈 stack<char>b;//符号栈 for(int i=0;i<n;i++){int tem;cin>>tem;a.push(tem);} for(int i=0;i<n-1;i++){char tem;cin>>tem;b.push(tem);}for(int i=0;i<n-1;i++){int x1 = a.top();a.pop();int x2 = a.top();a.pop();char x3 = b.top();b.pop();if(x1==0&&x3=='/'){cout<<"ERROR: "<<x2<<"/"<<x1;return 0;}a.push(c(x2,x1,x3));}cout<<a.top()<<endl;
}

L2-1 简单计算器 (25 分)详解c语言 模拟堆栈相关推荐

  1. 7-13 简单计算器 (25 分)

    7-13 简单计算器 (25 分) 本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器.如上图所示,计算器由两个堆栈组成,一个堆栈 S1​ 存放数字,另一个堆栈 S2​ 存放运算符.计 ...

  2. PTA7-1 简单计算器 (25 分)

    PTA7-1 简单计算器 (25 分) 本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器.如上图所示,计算器由两个堆栈组成,一个堆栈 S1​ 存放数字,另一个堆栈 S2​ 存放运算符 ...

  3. 7-4 简单计算器 (25 分)

    7-4 简单计算器 (25 分) 本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器.如上图所示,计算器由两个堆栈组成,一个堆栈 S1​ 存放数字,另一个堆栈 S2​ 存放运算符.计算 ...

  4. 7-4 小字辈 (25 分) 详解

    7-4 小字辈 (25 分) 本题给定一个庞大家族的家谱,要请你给出最小一辈的名单. 输入格式: 输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) -- 简单起见,我们把家族成员从 ...

  5. 7-24 树种统计 (25 分)(详解)map做法 map真香啊!

    一:题目 7-24 树种统计 (25 分) 随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类.请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比. 输入格式: 输入首先给出 ...

  6. 7-6 列出连通集 (25 分)(详解)

    列出连通集 1:思路 : 利用了邻接矩阵储存数据并建图,然后就是 DFS遍历和BFS遍历 只不过是本题需要输出的是非连通图 连通分量 外加俩函数搞定 2:上码 #include<bits/std ...

  7. L2-033 简单计算器 (25 分)-PAT 团体程序设计天梯赛 GPLT

    本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器.如上图所示,计算器由两个堆栈组成,一个堆栈 S1存放数字,另一个堆栈 S2存放运算符.计算器的最下方有一个等号键,每次按下这个键,计 ...

  8. 7-40 奥运排行榜 (25 分)(详解+思路+map+vector做法)兄弟们冲压呀呀呀呀呀呀呀

    一:题目 每年奥运会各大媒体都会公布一个排行榜,但是细心的读者发现,不同国家的排行榜略有不同.比如中国金牌总数列第一的时候,中国媒体就公布"金牌榜":而美国的奖牌总数第一,于是美国 ...

  9. 7-1 简单计算器 (25 分)

    不知道哪些点没过,大佬可以提醒我这个垃圾. 本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器.如上图所示,计算器由两个堆栈组成,一个堆栈 S1​ 存放数字,另一个堆栈 S2​ 存放运 ...

最新文章

  1. PHP教程中验证正整数is_int($value+0),为什么要这样?
  2. 找论文太难?试试这款「文本生成」论文搜索工具丨开源
  3. 这届年轻人连穷都不怕,还会怕冷?
  4. Nginx-rtmp直播之业务流程分析--比较详细
  5. 工业机器人打磨抛光编程员工资_让我们一起来谈谈,工业机器人行业的真实工资是多少?...
  6. 接facebook广告_Facebook广告分析
  7. 小程序中利用Moment.js格式时间
  8. springboot controller 分页查询_Spring Boot实战分页查询附近的人: Redis+GeoHash+Lua
  9. matlab共享变量,matlab如何编写共享参数拟合程序 - 程序语言 - 小木虫 - 学术 科研 互动社区...
  10. java并发编程(7)-- 线程 自旋锁
  11. JParticles 2.0 发布,打造炫酷的粒子特效
  12. 常用于页面交互的JavaScript的一些技巧分析
  13. C# globle应用
  14. [视频教程][斯坦福大学公开课:ios7应用开发 18集]
  15. 逍遥模拟器 设置端口号
  16. 《HelloGitHub》第 74 期
  17. C语言中的全局变量定义与使用
  18. 6 生僻字_蔬菜中的生僻字你知道哪些?
  19. html引入微软雅黑,网页引入特殊字体的几种方案
  20. 90 后高管:“下不手开除 70、80 后,公司死了谁负责?”

热门文章

  1. 云服务器一直显示关机中,云服务器一直提示关机中
  2. php loop 语法,Loop - SegmentFault 思否
  3. python实现高校教务管理系统_基于Python技术的教务管理系统的研究与开发
  4. bind-utils.x86_64(dig) 安装失败解决办法
  5. CTF基础理论知识02
  6. 【ESSD技术解读】ESSD Auto PL规格,引领IO性能弹性新方向
  7. 【ESSD技术解读】 云原生时代,阿里云块存储 ESSD 快照服务如何被企业级数据保护所集成?
  8. 倒计时5天!云栖大会低代码峰会即将开幕!
  9. 【客户故事】借助钉钉宜搭,奶茶店也开始用黑科技管理门店了
  10. 一张图,看懂阿里云12年的“飞天日记”