1057:简单计算器
1057:简单计算器
【题目描述】
一个最简单的计算器,支持+, -, *, / 四种运算。仅需考虑输入输出为整数的情况,数据和运算结果不会超过int表示的范围。然而:
- 如果出现除数为0的情况,则输出:Divided by zero!
- 如果出现无效的操作符(即不为 +, -, *, / 之一),则输出:Invalid operator!
【输入】
输入只有一行,共有三个参数,其中第1、2个参数为整数,第3个参数为操作符(+,-,*,/)。
【输出】
输出只有一行,一个整数,为运算结果。然而:
- 如果出现除数为0的情况,则输出:Divided by zero!
- 如果出现无效的操作符(即不为 +, -, *, / 之一),则输出:Invalid operator!
【输入样例】
1 2 +
【输出样例】
3
【问题分析】
无
【问题解答】
//使用 if 解决
#include <bits/stdc++.h>
using namespace std;
int main()
{
int x,y;
char ch;
cin >> x >> y >> ch;
if (ch == '+') cout << x+y;
else if (ch == '-') cout << x-y;
else if (ch == '*') cout << x*y;
else if (ch == '/')
{
if (y == 0) cout << "Divided by zero!";
else cout << x/y;
}
else cout << "Invalid operator!";
return 0;
}
//使用 switch 解决
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
char ch;
cin >> a >> b >> ch;
switch(ch)
{
case'+': printf("%d",a+b);break;
case'-': printf("%d",a-b);break;
case'*': printf("%d",a*b);break;
case'/':
{
if(b==0) printf("Divided by zero!") ;
else
printf("%d",(int)a/b);
}break;
default:printf("Invalid operator!");break;
}
return 0;
}
【问题难点】
在于对题目的理解是否清晰,对 if 的理解是否清晰,对 switch 的理解是否清晰