读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
样例输入
1 + 2
4 + 2 * 5 - 7 / 11
0
样例输出
3.00
13.36
思路:由于是非负数参与,将运算符转化成负数,便于存储处理。
先扫描一遍将所有乘除法解决,废弃的内容标记成一个负数。再扫描一遍运算加减法。
#include<iostream>
using namespace std;
#include<vector>
#include<stdio.h>
#include<map>
vector<double> v;
void cal(vector<double> v)
{
double res=0;
int op;
//cal * and /
for(int i=0;i<v.size();i++)
{
if(v[i]==-3)
{
v[i+1] = v[i-1]*v[i+1];
v[i] = -5;
v[i-1] = -5;
}
else if(v[i]==-4)
{
v[i+1] = v[i-1]/v[i+1];
v[i] = -5;
v[i-1] = -5;
}
}
for(int i=0;i<v.size();i++)
{
if(v[i]!=-5)
{
res = v[i];
break;
}
}
op = 0;
//cal + and -
for(int i=1;i<v.size();i++)
{
if(v[i]==-1)
op = -1;
else if(v[i]==-2)
op = -2;
else if(v[i] != -5)
{
if(op == -1)
res+=v[i];
else if(op == -2)
res-=v[i];
}
}
printf("%.2f\n",res);
}
int main()
{
double num;
char op;
char ch;
while(1)
{
cin>>num;
v.clear();
v.push_back(num);
ch = getchar();
if(num==0&&ch=='\n')
break;
while(ch!='\n')
{
cin>>op;
if(op =='+')
v.push_back(-1);
else if(op =='-')
v.push_back(-2);
else if(op=='*')
v.push_back(-3);
else if(op=='/')
v.push_back(-4);
cin>>num;
v.push_back(num);
ch = getchar();
}
cal(v);
}
}
分享到:
相关推荐
作为考研复试的重要参考资料,《武汉大学考研复试内容-复试参考书目-复试准备-复试资料.pdf》为考生提供了详细的复试指南,涵盖了复试内容、参考书目、准备和资料等多个方面,帮助考生有条不紊地备战。 首先,了解...
武汉理工大学研究生考研复试内容参考书目复试准备复试资料全.doc 武汉理工大学研究生考研复试内容参考书目复试准备复试资料全.doc 是一份复杂的研究生考试资料,涵盖了武汉理工大学研究生考试的各个方面,包括经济...
历年复试真题: 2010年东南大学复试.doc 历年复试真题: 2011东南大学计算机学院研究生复试笔试试题.pdf 历年复试真题: 2012东南大学复试C 笔试题.pdf 历年复试真题: 2012复试C++.txt 历年复试真题: 2013年东南...
根据提供的信息,我们可以总结出与“吉大汽车理论复试基础”相关的知识点,主要围绕吉林大学汽车工程学院车辆工程专业的研究生复试准备展开。 ### 吉林大学汽车理论复试基础概述 吉林大学作为中国知名的高等学府之...
《机械设计考研复试真题参考资料》是一份专为2022届考研学生准备的复习材料,特别针对上海工程技术大学车辆工程专业的复试阶段。这份资料集合了历年来的考研真题和复习要点,旨在帮助考生更好地理解和掌握机械设计及...
中科大计算机软件复试常问问题中科大计算机软件复试常问问题中科大计算机软件复试常问问题中科大计算机软件复试常问问题中科大计算机软件复试常问问题中科大计算机软件复试常问问题中科大计算机软件复试常问问题...
华中科技大学研究生复试作为学子们迈进学术殿堂的敲门砖,其重要性不言而喻。为了帮助考生们全方位了解并准备复试,一份名为【华科复试整理】的资料应运而生。这份资料基于实际经验编纂,被众多考生亲测有效,并最终...
根据提供的信息,我们可以总结出以下关于“北京理工大学复试经验”的相关知识点。 ### 北京理工大学复试经验分享 #### 一、准备阶段 1. **初试成绩与排名**:作者在初试中取得了较好的成绩(约320分),虽然没有...
### 云南大学计算机技术复试经验分享 #### 一、复试概况 2017级云南大学信息学院计算机技术复试在2017年3月28日与29日进行,28日针对学术型硕士研究生(简称学硕),29日针对专业型硕士研究生(简称专硕)。学硕与...
《桂电计算机学院复试资料》是一份集合了数据库系统、概率论与数理统计以及程序设计基础等核心知识点的复习资源,专为桂林电子科技大学计算机学院的复试考生准备。这份资料包旨在帮助考生全面深入地理解和掌握计算机...
标题"2019南京大学考研复试机试题.zip"明确指出这是一个与2019年南京大学硕士研究生入学考试复试相关的资料压缩包。"机试题"通常指的是计算机科学或相关专业在复试阶段可能会遇到的上机编程题目,考生需要在规定时间...
"浙大cs考研复试面试录音.mp3(里面对考研复试有很好的指导性并还原真实的考研复试场面).zip" 这个标题表明这是一个关于浙江大学计算机科学(cs)考研复试的音频资源,它以MP3格式存储,并且被压缩在ZIP文件中。...
标题和描述中提到的文件为:“2021考研复试腿姐高能指导:孔玮复试先导课(学生课件).pdf”。该文件主要讲述了有关考研复试的高能指导,其中孔玮老师针对英语面试环节给出了一些具体的加分秘籍,这些内容涉及到了...
评语大全之研究生复试面试评语.pdf 本文档提供了两篇博士面试个人评价模板和厦门大学 2016 年硕士研究生复试录取工作意见,旨在帮助研究生更好地准备博士面试和硕士研究生复试。 篇一:博士面试个人评价模板 这篇...
英语口语测试通常包括读一段英文课文、回答简单问题以及做一个简短的演讲。例如,2008年的试题中,考生需要对显示器上的题目进行英文朗读,如介绍对苏大的第一印象,而2009年的迷你演讲主题则是为什么选择接受更高...
2. 简单计算器:1019简单计算器.cpp - 计算器程序设计通常涉及到运算符优先级、中缀表达式到后缀表达式的转换(逆波兰表示法)、栈数据结构的应用,以及基本的算术运算。 3. 日期计算:1043Day of week.cpp 和 ...
这份名为“北京理工大学光学工程考研复试真题06-09.zip”的压缩包文件,正是为备考者提供了宝贵的复习资料,涵盖了2006年至2009年间的复试真题,帮助考生有针对性地进行准备。 光学工程是一门涉及光的产生、传播、...
"兰州大学专硕复试资料.zip" 是一个包含兰州大学计算机专业硕士研究生复试相关学习资源的压缩文件。这个标题表明了文件的主要内容是针对兰州大学计算机科学与技术专业硕士研究生复试阶段的学习材料。 【描述详解】 ...
博士复试汇报PPT框架模板