告诉我的计算器不要除以0

Telling my calculator to not divide by zero

本文关键字:我的 计算器      更新时间:2023-10-16

我正在用c++做一个计算器,它工作得很好,除了我除以零的时候。所以我有一个if语句,当一个数字被0除时,给出"Error Divide buy zero"的消息。但是程序仍然会崩溃。

我的代码

#include <iostream>
using namespace std;
int main()
{
    int a, b, d, s;
    d == a/b
    cout << "Enter first numbern";
    cin >> a;
    cout << "Enter second numbern";
    cin >> b;
    cout << "Select the operation you wantn";
    cout << "1.Additionn";
    cout << "2.Subtractionn";
    cout << "3.Multiplicationn";
    cout << "4.Divisionn";
    cin >> s;
    switch (s)
    {
    case 1: cout << "Addition Selectedn"; a+b << endl;    break;
    case 2: cout << "Subtraction Selectedn"; a-b << endl; break;
    case 3: cout << "Addition Selectedn"; a*b << endl;    break;
    case 4:
        if (b==0)
        {
            cout << "Error Divide by Zero"<< endl;
        }
        else
        {
            cout << d << endl;
        }
    break;
    default: cout << "Invalid Selection" << endl;
    }
    return 0;
}

当我选择一个操作时,它不会说它是被选中的

你的代码有很多语法错误

也许这对你有帮助。这巧妙地避免了除以0和打印错误消息。

#include <iostream>
using namespace std;
int main() {
    int n1, n2, ans;
    char op;
    cin >> n1 >> op >> n2;
    switch (op) {
    case '+':
        ans = n1 + n2;
        break;
    case '-':
        ans = n1 - n2;
        break;
    case '*':
        ans = n1 * n2;
        break;
    case '/':
        if (n2) {
            ans = n1 / n2;
            break;
        }
    default:
        cerr << "Invalid Input" << endl;
        return 1;
    }
    cout << ans;
    return 0;
}

你的台词

d == a/b;

必须是

d = a/b;

需要移动到"else"子句中。否则,在打印解释错误之前会出现除0错误。

您还缺少一个除法的打印,应该添加它。

你的代码中有许多拼写/语法错误。

这是一个接近你的代码的工作解决方案:

int main()
{
    int a, b, d, s;
    cout << "Enter first numbern";
    cin >> a;
    cout << "Enter second numbern";
    cin >> b;
    cout << "Select the operation you wantn";
    cout << "1.Additionn";
    cout << "2.Subtractionn";
    cout << "3.Multiplicationn";
    cout << "4.Divisionn";
    cin >> s;
    switch( s )
    {
    case 1:
        cout << "Addition Selectedn" << a + b << endl;
        break;
    case 2:
        cout << "Subtraction Selectedn" << a - b << endl;
        break;
    case 3:
        cout << "Multiplication Selectedn" << a * b << endl;
        break;
    case 4:
        if( b == 0 )
        {
            cout << "Error Divide by Zero" << endl;
        }
        else
        {
            d = a / b;
            cout << d << endl;
        }
        break;
    default:
        cout << "Invalid Selection" << endl;
    }
    return 0;
}