Time Limit: 1 Sec     Memory Limit: 128 Mb


Description

给出n个数,和n - 1个运算符(只含有加减乘号,不含除号,按顺序填入n个数之间),要求输出该式的答案。

Input

单组数据。

第一行为n(2 ≤ n ≤ 100),且n为整数。

第二行为n个数,每个数a保证1 ≤ a ≤ 10,且为整数。

第三行为n - 1个运算符,运算符之间由空格隔开。

数据保证每一步运算结果不会超过 1018

Output

如题。

Sample Input

4
1 2 3 4
+ * -

Sample Output

3

Hint

1 + 2 * 3 - 4 = 3

注意:如果使用scanf()输入运算符,需注意%c也会接收换行符 '\n'、结束符 '\0' 等符号。

代码实现

#include <iostream>
using namespace std;/*根据运算优先级,应当从左到右,先算乘法,再算加减法那么便可以根据第二运算符来判定第一运算符是否可以先进行计算即: 若第二运算符为“*”,无论如何都可以先算第二运算符;若第二运算符为“+”或者“-”,无论如何都可以先算第一运算符
*/int main()
{int n;scanf("%d", &n);int* anums = new int[n];for (int i = 0; i < n; i++){cin >> anums[i];}char* op = new char[n];for (int i = 1; i < n; i++){cin >> op[i];}int temp1 = anums[0];//第一运算数int temp2 = anums[1];//第二运算数int optemp = op[1];//第一运算符for (int i = 2; i < n; i++){if (op[i] != '*')//按顺序计算{if (optemp == '+'){temp1 += temp2;//修改第一运算数}else if (optemp == '-'){temp1 -= temp2;}else if (optemp == '*'){temp1 *= temp2;}optemp = op[i];//更新运算符temp2 = anums[i];//更新第二运算数}else//先算第二运算符,即temp2*anums[i]{temp2 *= anums[i];//更新第二运算数,第一运算数还未计算}}//算最后一组数if (optemp == '*'){temp1 *= temp2;}else if (optemp == '+'){temp1 += temp2;}else if (optemp == '-'){temp1 -= temp2;}printf("%d\n", temp1);return 0;
}

​1.F : 模拟计算器​相关推荐

  1. c语言计算器实训任务案例,C/C++经典实例之模拟计算器示例代码

    前言 本文主要给大家介绍了关于利用C/C++如何实现模拟计算器的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. Problem Description 简单计算器模拟:输入 ...

  2. 【蓝桥杯】【入门题】【算法提高VIP】1480:模拟计算器

    题目 1480:模拟计算器 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 128MB 1. 题目描述 使用Switch ...

  3. 计算器软件设计和计算机软件设计区别,求一个模拟计算器程序

    # include # include # include # include # define MAX_OPERATOR_NUM 100//运算符栈数组长度 # define MAX_DATA_NU ...

  4. Java制作一个盒子程序_编写一个简单的Java程序,模拟计算器的功能。

    提问:编写一个简单的Java程序,模拟计算器的功能. 网友回答: 程序参考: import java.awt.*; import java.awt.event.ActionEvent; import ...

  5. java计算器如何实现运算_用java编写了一个模拟计算器的界面设计,怎么实现运算功能呢...

    用java编写了一个模拟计算器的界面设计,怎么实现运算功能呢 2020 - 9 - 16 TAG : view sourceprint?import java.awt.BorderLayout; im ...

  6. c语言显示数字p1=0x5b,模拟计算器数字输入及显示

    原标题:模拟计算器数字输入及显示 吴鉴鹰单片机开发板地址 店铺:[吴鉴鹰的小铺] 地址:[https://item.taobao.com/item.htm?_u=ukgdp5a7629&id= ...

  7. 模拟计算器进行四则运算(同等优先级)(内测第2届第3题)

    题目要求 问题描述:模拟计算器进行四则运算.假设只有+.-.*./.=五种运算符,且它们优先级相等.输入=后会显示计算结果. 样例输入:8.5+0.5*2.5= 样例输出:22.5 解决方案 比起需要 ...

  8. javascript 模拟退格键_js实现模拟计算器退格键删除文字效果的方法

    本文实例讲述了js实现模拟计算器退格键删除文字效果的方法.分享给大家供大家参考.具体如下: /p> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tr ...

  9. 7-105 sdut-C语言实验——三个数排序7-106 sdut-C语言实验——模拟计算器7-107 sdut-C语言实验——找中间数

    目录 7-105 sdut-C语言实验--三个数排序 7-106 sdut-C语言实验--模拟计算器 7-107 sdut-C语言实验--找中间数 7-105 sdut-C语言实验--三个数排序 分数 ...

最新文章

  1. 他花了一个月,使用MicroPython将自己装进OLED里面
  2. SQL Server 自定义快捷键
  3. 【深度学习】Keras vs PyTorch vs Caffe:CNN实现对比
  4. SpringBoot中使用Redis数据库
  5. ASP.NET MVC HandleError异常过滤器过滤器用法
  6. 最稳妥的服务器阵列方案:RAID5+热备盘
  7. 1000道Python题库系列分享十一(9道)
  8. java 调用native api_Windows和Native API中的系统调用?
  9. SpringBoot项目读取json配置文件
  10. 2013.6月安徽二级c语言考试试题答案豆丁网,安徽省c语言二级考试
  11. MyEclipse 7.0 + PHPEclipse下调试环境搭建(xDebug)
  12. 计算机在桌面被删了如何恢复,桌面文件被删除怎么恢复?电脑文件误删恢复教程...
  13. 2021年安全生产模拟考试(全国特种作业操作证电工作业-电气试验模拟考试题库二)安考星
  14. Vue 文本超过三行展示省略号,并加上展开和收起的功能
  15. Vm linux虚拟机与本地宿主机互通
  16. 计算机视觉领域的一些牛人博客,研究机构等的网站链接 机器学习算法中文视频教程
  17. 用应用软件UCCW Widget制作出属于你独一无二的梦幻桌面吧!
  18. 【JZOJ3794】【洛谷P1383】高级打字机【主席树】
  19. 验证码获取及解加密(模拟人进入网页获取数据)
  20. 如何在C语言中把int*转化为char*

热门文章

  1. Flask学生信息管理系统,前后端分离(附完整源码+数据库)
  2. RestTemplate请求出现401错误
  3. 电话号码的字母组合(力扣17)
  4. 【文献阅读】结合对抗网络和知识蒸馏,对多模态源的遥感图像分类(S. Pande等人,ICCV,2019)
  5. 不出门就和朋友们一起在家观看电影?只需要这款 Chrome 插件
  6. java rpc motan_RPC框架motan使用
  7. cloab:配置SGN图卷积
  8. 解决spring问题(Unsatisfied dependency)的意外发现
  9. 安装kuboard-kubernetes图形化管理工具
  10. 浅谈CSS中/deep/ >>> ::v-deep属性 进行样式穿透