首页 > 解决方案 > 除以零时如何显示错误c ++

问题描述

我正在尝试创建简单的计算器。它适用于除“/”之外的每个运算符。但是当 num2 = 0 时程序完全停止。我尝试使用条件语句在 num2 = 0 时输出错误消息,但它不起作用。

这是代码

#include <iostream>
#include <stdexcept>

using namespace std;


int SumNum(int& a, int& b);
int SubNum(int& a, int& b);
int DivNum(int& a, int& b);
int MulNum(int& a, int& b);


int main()
{
    char op;
    int* num1 = new (nothrow) int;
    int* num2 = new (nothrow) int;
    cout << "Enter operator either + or - or * or /: ";
    cin >> op;
    cout << "Enter first operand: ";
    cin >> *num1;
    cout<< "Enter second operand: ";
    cin >> *num2;

    switch (op)
    {
    case '+':
        cout << "Result is : " << SumNum(*num1, *num2) << endl;
        break;

    case '-':
        cout << "Result is : " << SubNum(*num1, *num2) << endl;
        break;

    case '/':
        cout << "Result is : " << DivNum(*num1, *num2) << endl;
        break;

    case '*':
        cout << "Result is : " << MulNum(*num1, *num2) << endl;
        break;

   default:
        cout << "Incorrect operator";
        break;
    }
    return 0;
}

int SumNum(int& a, int& b) {
    return a + b;
}
int SubNum(int& a, int& b) {
    return a - b;
}
int DivNum(int& a, int& b) {
    return a / b;
}
int MulNum(int& a, int& b) {
    return a * b;
}

标签: c++calculatordivisionzero

解决方案


您可以使用以下内容更改除法大小写:

case '/':
    if (*num2 == 0) {
        cout << "Error: You can't divide by 0!" << endl;
        break;
    }
    cout << "Result is : " << DivNum(*num1, *num2) << endl;
    break;

推荐阅读