题目地址:http://xcacm.hfut.edu.cn/problem.php?id=1251

就和表达式求值有点像,但是和杭电的哪一题不一样的是中间没有空格,那么就意味着必须通过字符串处理的方式来解决这个问题。

(OS:mmp 劳资测试了快一整天才得出这个结论,因为用cin的话它是一次性读取的,你再cin除非是你再次输入或者中间有空格,杭电的那个计算器就是通过空格实现的);

再OS:当年考试这题还一直以为要用堆栈做,其实这么看来并不需要。

首先是字符串转化数字,这个很简单。

其次是第一个数要单独处理。

然后就是,每当str[i]为减号或者加号的时候,我就把符号后面的那个数给提取出来,这个可以用一个循环实现。

接下来附上代码

#include <iostream>
#include<math.h>
#include <iomanip>
#include<cstdio>
#include<string>
#include<map>
#include<vector>
#include<list>
#include<algorithm>
#include<stdlib.h>
#include<iterator>
#include<sstream>
#include<string.h>
#include<stdio.h>
using namespace std;
//
int main()
{ string str; int len;//字符串长度
int sum;//总和
int temp;//临时数
int pos;
int num[];
while(cin>>str)
{
len=str.length();
memset(num,,sizeof(num));
sum=;
temp=;
pos=; for(int i=;i<len;i++)//第一个数要单独处理
{
if(pos==)
{
for(int k=;k<len;k++)
{
if(str[k]>=''&&str[k]<='')
{
temp=temp*+str[k]-'';
}
else{
break;
}
}
num[pos]=temp;
temp=;
pos++; }
if(str[i]=='+')//一旦遇到符号 就把它后面那个数给提取出来
{
for(int j=i+;j<len;j++)//通过循环实现
{
if(str[j]>=''&&str[j]<='')
{
temp=temp*+str[j]-'';
}
else{//如果遇到了符号 或者是 最后一个数
break;//就跳出循环
}
}
num[pos]=temp;
temp=;
pos++;
}
if(str[i]=='-')
{
for(int jj=i+;jj<len;jj++)
{
if(str[jj]>=''&&str[jj]<='')
{
temp=temp*+str[jj]-'';
}
else{
break;
}
}
num[pos]=-temp;//当然 是减号的话 当然是放复数了
temp=;
pos++;
}
} for(int ii=;ii<pos;ii++)
{
sum=sum+num[ii];
}
cout<<sum<<endl; }
return ;
}

最新文章

  1. 廖雪峰js教程笔记13 插入DOM
  2. Android 开发常用命令
  3. Redhat Linux /etc/profile 与 /etc/bashrc 的区别
  4. Lazarus中Base64的操作
  5. mysql 不支持innodb的问题解决
  6. c# gzip解压缩
  7. JavaScript –type
  8. Redis的部署及使用
  9. javascript(js)创建对象的模式与继承的几种方式
  10. mysql 唯一索引与null.md
  11. MySQL--REPLACE INTO与自增
  12. NotePad++ 配置Python工作环境
  13. Nginx隐藏标识以及其版本号
  14. Django orm 实现批量插入数据
  15. kubectl管理多个k8s集群
  16. apache跨域图片配置
  17. python-unittest学习2--生成报告
  18. Codeforces Round #394 (Div. 2)
  19. 网站用户行为分析——Hadoop的安装与配置(单机和伪分布式)
  20. Python3 嵌套函数

热门文章

  1. 线性回归-Fork
  2. Excel 不同文件、sheet 关联引用(vlookup函数)
  3. HTML学习(1)简介
  4. xv6 trapframe定义的位置
  5. 560. 和为K的子数组
  6. 【Thinkphp】记录一次分页的实现
  7. win7安装mysql数据库
  8. vue路由,ajax,element-ui
  9. Android学习15
  10. APP测试用例