文章

【GESP】C++一级练习 luogu-B2052, 简单计算器

一级知识点条件判断练习,涉及多种条件的判断,难度不大。

luogu-B2052

题目要求

题目描述

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

  1. 如果出现除数为 $0$ 的情况,则输出:Divided by zero!

  2. 如果出现无效的操作符(即不为 +,-,*,/ 之一),则输出:Invalid operator!

  3. 除号表示整除,结果向 0 取整。

输入格式

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

输出格式

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

  1. 如果出现除数为 $0$ 的情况,则输出:Divided by zero!

  2. 如果出现无效的操作符(即不为 +,-,*,/ 之一),则输出:Invalid operator!

样例输入 #1

1
1 2 +

样例输出 #1

1
3

样例输入 #2

1
2 4 *

样例输出 #2

1
8

样例输入 #3

1
5 0 /

样例输出 #3

1
Divided by zero!

题目分析

这是一道简单的四则运算题,需要根据输入的两个整数和一个操作符进行相应的运算。我们可以使用条件判断语句来判断操作符的类型,然后执行相应的运算。在执行除法运算时,需要注意除数是否为0的情况。

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
using namespace std;
int main() {
    int a, b; // 定义两个整数变量a和b
    char c; // 定义一个字符变量c,用于存储操作符
    cin >> a >> b >> c; // 从输入流中读取a, b, c的值
    
    // 检查除数是否为0,并且操作符是否为除号
    if ((b == 0 && c == '/')) {
        cout << "Divided by zero!";
    }
    // 检查操作符是否为加号,并且除数是否不为0
    if (c == '+' && b != 0) {
        cout << a + b; // 执行加法操作
    }
    // 检查操作符是否为减号,并且除数是否不为0
    if (c == '-' && b != 0) {
        cout << a - b; // 执行减法操作
    }
    // 检查操作符是否为乘号,并且除数是否不为0
    if (c == '*' && b != 0) {
        cout << a * b; // 执行乘法操作
    }
    // 检查操作符是否为除号,并且除数是否不为0
    if (c == '/' && b != 0) {
        cout << a / b; // 执行除法操作
    }
    // 检查操作符是否为无效的操作符
    if (((c != '+' && c != '-') && c != '*') && c != '/') {
        cout << "Invalid operator!"; // 输出无效操作符的提示
    }
    return 0; // 返回0,表示程序执行成功
}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

题目已加入洛谷Java、C++初学团队作业清单,可在线评测,团队名额有限,欢迎加入。

本文由作者按照 CC BY 4.0 进行授权