博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【9108】模拟数学计算器
阅读量:4624 次
发布时间:2019-06-09

本文共 1163 字,大约阅读时间需要 3 分钟。

Time Limit: 10 second

Memory Limit: 2 MB

问题描述

输入一个数学计算表达式,输出结果。(除法运算结果取整)

Input

文件输入仅一行,输入数学表达式

Output

输出数学表达式以及结果 

Sample Input1

1001+98

Sample Output1

1001+98=1099

Sample Input2

1001-98

Sample Output2

1001-98=903

Sample Input3

1001*98

Sample Output3

1001*98=98098

Sample Input4

1001/98

Sample Output4

1001/98=10

【题解】

这道题的测试点就是样例输入和输出。

就是说只有一个运算符。而且还没负数。

所以直接找到运算符的位置。

然后获取运算符左边的数字。获取运算符右边的数字。就可以了。

根据运算符做相应的运算就好了。

要用到string类的函数。

【代码】

#include 
#include
#include
#include
using namespace std;string s;int main(){ getline(cin,s);//直接整行读取。 int i = 1; while (s[i]>='0' && s[i] <='9') //找到操作符的位置 i++; string s1 = s.substr(0,i); //获取操作符左边的数字 char key = s[i];//获取操作符 s = s.erase(0,i+1);//连同操作符和操作符左边的数字全都删掉。 int a = atoi(s1.c_str());//把左边的字符转换成数字 int b = atoi(s.c_str());//右边的也转换成数字(因为左边被删掉了,所以就只剩下右边了) int c; switch (key)//根据运算符,做相应的运算就可以了。 { case '+': c = a+b; break; case '-': c =a-b; break; case '*': c = a*b; break; case '/': c = a/b; break; } printf("%d%c%d=%d",a,key,b,c); //a和b的信息也都要输出。 return 0; }

转载于:https://www.cnblogs.com/AWCXV/p/7632339.html

你可能感兴趣的文章
angularjs实现首页轮播图
查看>>
Git 对象 和checkout 和stash的笔记
查看>>
团队项目总结2-服务器通信模型和顺序图
查看>>
hdu 1085 Holding Bin-Laden Captive!
查看>>
[周记]8.7~8.16
查看>>
递归定义
查看>>
kindeditor 代码高亮设置
查看>>
图的邻接表存储
查看>>
2018 leetcode
查看>>
PHP中获取当前页面的完整URL
查看>>
Chapter 4 Syntax Analysis
查看>>
vi/vim使用
查看>>
讨论Spring整合Mybatis时一级缓存失效得问题
查看>>
Maven私服配置Setting和Pom文件
查看>>
MySql【Error笔记】
查看>>
JS线程Web worker
查看>>
学习记事
查看>>
java 子类重写父类的方法应注意的问题
查看>>
[LevelDB] LevelDB理论基础
查看>>
自动化测试 Appium之Python运行环境搭建 Part2
查看>>