Member 13161645 Ответов: 3

Почему оператор деления не работает в калькуляторе C++?


#include <iostream>

using namespace std;

int main(){
float total=0;
float a=20;
float b=0;
float c=0;
float d=0;
while(a==20){
    cout << "1 Multiplication 2 Division 3 Addition 4 Subtraction: \n";
    cin >> b;
    cout << "Enter two numbers, one at a time: \n";
    cin >> c;
    cout << "\n";
    cin >> d;
    cout << "\n";
        if (b==1){
            total=c*b;
        }
        if (b==2){
            total=c/b;
        }
        if (b==3){
            total=c+b;
        }
        if (b==4){
            total=c-b;
        }
    cout << total;
    cout << "\n";
    cout << "\n";
    }
    return 0;
}


Я написал этот калькулятор на c++ несколько дней назад, но я сбит с толку проблемой, которой у меня нет объяснения. Все остальные операторы в калькуляторе работают, кроме деления, когда я ставлю 10, деленное на 2, я получаю выход 5, как и ожидалось, но когда я ввожу 20, деленное на 4 или 5, я получаю 10. Я также получаю 5, когда ставлю 10, деленное на 5. Есть ответы?

Что я уже пробовал:

Я просмотрел весь код около 7 раз, и все это кажется правильным. Я не знаю, что еще можно сделать, чтобы попытаться решить эту проблему.

George Swan

Попробуйте переименовать переменную " b " в "choice" и еще раз взглянуть на свой код. Важно давать переменным осмысленные имена.

3 Ответов

Рейтинг:
24

Piper18914

Во-первых, попробуйте дать вашим переменным лучшие имена.

Вы используете b для типа операции, затем c и d для операндов. Тем не менее, код использует c и b.


Рейтинг:
20

Patrice T

total=c/b;

Внимательно перечитайте свой код, b содержат код операции, а не делитель. Кстати, у вас гораздо больше ошибок, чем в делении.

Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволяет вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения, это невероятный инструмент обучения.

Отладчик-Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010-YouTube[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


Рейтинг:
1

Member 13161645

Вау, я такая глупая, не знаю, как я не заметила этого раньше, спасибо, ребята.


Patrice T

Спасибо.
Но вы не должны использовать ответ для такого сообщения.