题解 | #加减乘除#

加减乘除

https://www.nowcoder.com/practice/fdc56f9b00b34c70ad36c61ef89e3fc3

#include<bits/stdc++.h>
using namespace std;

//求阶乘函数
int jiecheng(int n) {
    if (n == 0 || n == 1) {
        return 1;
    } else {
        return n * jiecheng(n - 1);
    }
}
//完成其他运算的函数
void calculate(int num1, char op, int num2) {
    switch (op) {
        //加法运算
        case '+':
            cout << num1 + num2 << endl;
            break;
        //减法运算
        case '-':
            cout << num1 - num2 << endl;
            break;
        //乘法运算
        case '*':
            cout << num1* num2 << endl;
            break;
        //除法运算
        case '/': {
                if (num2 == 0) { //若除数为零则输出error
                    cout << "error" << endl;
                } else {
                    cout << num1 / num2 << endl;
                }
                break;
            }
        //求余运算
        case '%': {
                if (num2 == 0) { //若第二个运算数为零则输出error
                    cout << "error" << endl;
                } else {
                    cout << num1 % num2 << endl;
                }
                break;
            }
        default:
            break;
    }
}
int main() {
    int num1, num2; //两个参与运算的整数
    char op;//运算符
    while (cin >> num1 >> op) {
        //如果当前运算符不是求阶乘,则输入两个参与运算的数以及运算符
        if (op != '!') {
            cin >> num2;
            calculate(num1, op, num2);
        }
        //如果是求阶乘,则无需输入第二个整数
        else {
            cout << jiecheng(num1) << endl;
        }
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务