1057:简单计算器

1057:简单计算器

【题目描述】

一个最简单的计算器,支持+, -, *, / 四种运算。仅需考虑输入输出为整数的情况,数据和运算结果不会超过int表示的范围。然而:

  1. 如果出现除数为0的情况,则输出:Divided by zero!
  2. 如果出现无效的操作符(即不为 +, -, *, / 之一),则输出:Invalid operator!

【输入】

输入只有一行,共有三个参数,其中第1、2个参数为整数,第3个参数为操作符(+,-,*,/)。



【输出】

输出只有一行,一个整数,为运算结果。然而:

  1. 如果出现除数为0的情况,则输出:Divided by zero!
  2. 如果出现无效的操作符(即不为 +, -, *, / 之一),则输出: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 的理解是否清晰



posted @ 2021-03-02 19:39  春暖花开鸟  阅读(1683)  评论(0编辑  收藏  举报