c++——简单计算器
用C++编写简单计算器
限制:
1、只能使用分支语句与循环语句;
2、不能使用数组和自定义函数;
(即把自己当作只学到分支语句和循环语句的初学者)
计算器要求:
1、可以进行简单的加、减、乘、除四则运算;
2、如出现多个运算符号,必须考虑先乘除后加减的运算顺序;
3、不需要括号运算符;
一个比较简单的程序,但加上了上述的限制后,让我耗费了很大的功夫。
源代码如下:
#include<iostream>
using namespace std;int main()
{//首先要声明变量:double a0,a1,a2;//为了处理多位小数的运算,这里使用浮点型;char ca1,ca2;//字符型用于储存运算符号;//先考虑简单的情况————输入一个数后直接输入等号并输出结果;cin>>a0>>ca1;if(ca1=='=') cout<<a0<<endl;else{//若输入的第一个运算符不是等号,则可以继续输入;cin>>a1>>ca2;while(1)//此处进入第一个循环,用于处理仅有加减的运算;{ if(ca1=='=') {cout<<a0<<endl;break;} //用于跳出循环并输出结果;switch(ca2)//判断第二个输入的运算符;{case '='://如果第二个运算符是等号,则可直接进行前两个数的运算;switch(ca1){//将前两个数的运算结果存在第一个变量a0中,下同;case '+': a0=a0+a1;break;case '-': a0=a0-a1;break;case '*': a0=a0*a1;break;case '/': a0=a0/a1;}ca1=ca2;break;//将ca2的值赋给ca1后跳出switch;//由于跳出switch后就会回到循环的第一句,即可通过ca1的值判断是否继续循环,下同;case '+':case '-'://如果第二个运算符是加号或减号,也可以直接进行前两个数的运算;switch(ca1){case '+': a0=a0+a1;break;case '-': a0=a0-a1;break;case '*': a0=a0*a1;break;case '/': a0=a0/a1;}ca1=ca2;cin>>a1>>ca2;break;//由于ca2赋给ca1的值不是等号,因此会继续循环,所以必须要更新a1与ca2的值;case '*':case '/'://如果第二个运算符是乘号或除号,则要进入第二个循环处理连乘或连除的问题;while(1){//连乘或连除;switch(ca2){//此处要对第三个变量进行赋值,并将a1与a2的乘除结果存入a1中;case '*':cin>>a2;a1=a1*a2;cin>>ca2;break;case '/':cin>>a2;a1=a1/a2;cin>>ca2;//还要对ca2的值进行更新,用于处理接下来运算;}if(ca2=='=')//若ca2的值变为等号;{switch(ca1){//将之前乘除的结果a1与之前的a0进行加减运算,并将结果存入a0中;case '+': a0=a0+a1;break;case '-': a0=a0-a1;break;}ca1=ca2;break;//这也是跳出第二个循环的条件,且ca2为加号或减号时也要跳出循环;}if(ca2=='+'||ca2=='-'){switch(ca1){case '+': a0=a0+a1;break;case '-': a0=a0-a1;break;}ca1=ca2;cin>>a1>>ca2;break;}}}}}return 0;
}
注:
1、当ca2的值为加号或减号或等号时,就必须要出现ca2对ca1的赋值,不然没有办法处理接下来的运算或者跳出循环输出结果;
2、a0的作用是将加减的结果储存下来,而a1的作用是储存乘除的结果,考虑到运算顺序,因此最后的输出只能是a0;
运行结果:
用计算器验证一下结果:
结果正确!
c++——简单计算器相关推荐
- 模拟一个简单计算器_阅读模拟器的简单介绍
模拟一个简单计算器 Read simulators are widely being used within the research community to create synthetic an ...
- PTA 基础编程题目集 7-12 两个数的简单计算器 C语言
PTA 基础编程题目集 7-12 两个数的简单计算器 C语言 本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加.减.乘.除或求余运算.题目保证输入和输出均不超过整型范围. 输入格式 ...
- 7-12 两个数的简单计算器 (C语言)
7-12 两个数的简单计算器 (10 分)本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加.减.乘.除或求余运算.题目保证输入和输出均不超过整型范围. 输入格式: 输入在一行中依次 ...
- 用Python解“两个数的简单计算器”题
7-12 两个数的简单计算器 本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加.减.乘.除或求余运算.题目保证输入和输出均不超过整型范围. 输入格式: 输入在一行中依次输入操作数1 ...
- 用C语言解“两个数的简单计算器”题
7-12 两个数的简单计算器 本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加.减.乘.除或求余运算.题目保证输入和输出均不超过整型范围. 输入格式: 输入在一行中依次输入操作数1 ...
- 06-1. 简单计算器(20)
06-1. 简单计算器(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 张彤彧(浙江大学) 模拟简单运算器的工作.假设计算器只 ...
- c语言对10求余不为7,【PTA | 基础编程题目集】7-12 两个数的简单计算器 (10分)
本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加.减.乘.除或求余运算.题目保证输入和输出均不超过整型范围. 输入格式: 输入在一行中依次输入操作数1.运算符.操作数2,其间以1个 ...
- 重读The C programming Lanuage 笔记三:简单计算器程序
1 //简单计算器 2 3 #include <stdio.h> 4 #include <stdlib.h> 5 #include <ctype.h> 6 #inc ...
- python实现简单计算器功能键介绍_Python实现的简单计算器功能详解
本文实例讲述了Python实现的简单计算器功能.分享给大家供大家参考,具体如下: 使用python编写一款简易的计算器 计算器效果图 首先搭建计算器的面板: 计算器面板结构 建造一个继承于wx.Fra ...
- 一个用WPF做的简单计算器源代码
一.界面设计XAML代码 <Window x:Class="fengjisuanqi.MainWindow"xmlns="http://schemas.micros ...
最新文章
- Linux 命令之 rcp -- 远程文件复制
- 鱼腥草可以随便吃吗?
- 十大经典算法总结(JavaScript描述)
- smbus协议的command_SMBus接口信号/应用框图/帧格式
- Java基础编程题50道题
- CROSS APPLY和OUTER APPLY的区别
- 在css中怎么做橡皮擦,js 实现橡皮擦 擦图效果(可用于刮刮卡)
- 口袋的天空(洛谷 P1195)
- Python打印简单杨辉三角形
- Android移动数据开关开启关闭方法
- 云时代,网络攻击已经“鸟枪换炮”,你的企业安全还在按兵不动?
- SQL 高级教程:SQL BETWEEN 操作符
- [C++] 小游戏—三国杀
- 传奇手游怎么开服?需要投资多少?需要那些东西?
- PMP考试关键字和黄金法则大全
- 【Caffe笔记】二.Forward and Backward(前传/反传)
- kl压缩 matlab,KL 变换实习matlab代码
- 【干货】Windows 服务器系统日志分析及安全
- 重装系统当识别不到硬盘的解决办法
- make和makefile的区别