一、题目说明
一个最简单的计算器支持+
-
×
÷
四种运算。输入只有一行:两个参加运算的数和一个运算符(+
-
×
÷
)。输出运算表达式
及结果。
考虑下面两种情况:
- 如果出现除数为
0
的情况,则输出:Divided by zero!
- 如果出现无效的运算符(即不为
+
-
×
÷
之一),则输出:Invalid operator!
输入样例:
34 + 56
输出样例:
34+56=89
二、题意分析
设num1
num2
存放两个参加运算的操作数,op
存放运算符。
-
当
op
为+
号时,实现加法操作 -
当
op
为-
号时,实现减法操作 -
当
op
为*
号时,实现乘法操作 -
当
op
为/
号时,判断num2
的值,如果不为0
,实现除法操作,如果为0
,则输出Divided by zero!
-
当
op
不是以上四种运算符时,输出Invalid operator!
此程序可以用if
语句实现,但是,C++ 提供了解决此类问题的最佳方法:
switch
语句
三、程序如下:
#include <iostream>
using namespace std;
int main ()
{
float num1,num2; //用float类型定义是因为用户可能输入小数
char op; //运算符定义
cin>>num1>>op>>num2; //输入
switch(op) { //switch语句
//判断加法
case'+':cout<<num1<<op<<num2<<"="<<num1+num2<<endl; break;
//判断减法
case'-':cout<<num1<<op<<num2<<"="<<num1-num2<<endl; break;
//判断乘法
case'*':cout<<num1<<op<<num2<<"="<<num1*num2<<endl; break;
//判断除法
case'/':{
if(num2!=0) cout<<num1<<op<<num2<<"="<<num1/num2<<endl; else cout<<"Divided by zero!"<<endl; break;
}
//判断非法运算符
default:cout<<"Invalid operator!"<<endl; break;
}
return 0;
}