读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
样例输入
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);
}
}
分享到:
相关推荐
清华计算机06复试真题 上机题
历年复试真题: 2010年东南大学复试.doc 历年复试真题: 2011东南大学计算机学院研究生复试笔试试题.pdf 历年复试真题: 2012东南大学复试C 笔试题.pdf 历年复试真题: 2012复试C++.txt 历年复试真题: 2013年东南...
研究生复试《微机原理与接口技术》大纲.pdf研究生复试《微机原理与接口技术》大纲.pdf研究生复试《微机原理与接口技术》大纲.pdf研究生复试《微机原理与接口技术》大纲.pdf研究生复试《微机原理与接口技术》大纲.pdf...
机械设计考研复试真题参考资料,最新2022届考研复试可用。上海工程技术大学车辆工程复试参考资料
武汉理工大学考研复试内容复试参考书目复试准备复试资料全.doc
武汉大学考研复试内容-复试参考书目-复试准备-复试资料.pdf
软件工程复试资料软件工程复试资料软件工程复试资料软件工程复试资料软件工程复试资料软件工程复试资料软件工程复试资料软件工程复试资料软件工程复试资料软件工程复试资料软件工程复试资料软件工程复试资料软件工程...
中科大计算机软件复试常问问题中科大计算机软件复试常问问题中科大计算机软件复试常问问题中科大计算机软件复试常问问题中科大计算机软件复试常问问题中科大计算机软件复试常问问题中科大计算机软件复试常问问题...
南京航空航天大学离散数学01-06试题及答案及10与12年复试题目
吉大汽车理论复试基础,吉林大学汽车工程学院车辆工程专业研究生复试。
清华大学 gct 复试 软件工程 数据库 数据结构
桂林电子科技大学复试2014数据库系统原理+程序设计基础考研复试试题研究生入学考试试题考研复试真题计算机复试
考研复试自我介绍 考研复试自我介绍 考研复试自我介绍
博士复试汇报PPT框架模板
2020三峡大学复试细则复试,2020三峡大学复试手册
浙江大学考研复试面试录音.mp3(里面对考研复试有很好的指导性并还原真实的考研复试场面)
武汉理工大学计算机考研复试题 武汉理工考研计算机复试题 计算机考研复试 理工计算机考研复试 武汉理工大学考研复试
一些东北大学复试试题收集,回忆。 一些东北大学复试试题收集,回忆。 一些东北大学复试试题收集,回忆。
2018北京航空航天大学航空科学与技术国家实验室大飞机班考研复试通知复试时间复试分数线复试经验.docx2018北京航空航天大学航空科学与技术国家实验室大飞机班考研复试通知复试时间复试分数线复试经验.docx2018北京...