почему результат всегда нулевой (c ++) - PullRequest
0 голосов
/ 16 мая 2018

Я построил калькулятор, чтобы начать изучение c ++, но результат всегда равен 0 ... Если я не даю result = 0, он говорит, что результат не инициализирован ... где ошибка?Также, если я установлю значение по умолчанию, оно всегда печатает значение по умолчанию.Нужно ли инициализировать все целые числа?

    int main()

{
    int result = 0;
    int processing;
    int nmb;
    int nmb;
    char wait;

cout << "Operation:" << endl;
cout << "1 for +" << endl;
cout << "2 for -" << endl;
cout << "3 for *" << endl;
cout << "4 for /" << endl;
cin >> processing;

cout << "Type both numbers:" << endl;
cout << "1.nmb:" << endl;
cin >> nmb1;
cout << "2.nmb:" << endl;
cin >> nmb2;
switch (processing)
{
    case '1':
        result = nmb1 + nmb2;
        break;
    case '2':
        result = nmb1 - nmb2;
        break;
    case '3':
        result = nmb1 * nmb2;
        break;
    case '4':
        if (nmb2 == 0)
        {
            cout << "Dont do that!";
            break;
        }
        else
        {
            result = nmb1 / nmb2;
            break;
        }
}

cout << "result = " << result << endl;

cin >> wait;
return 0;

}

Ответы [ 3 ]

0 голосов
/ 16 мая 2018

Тип вашей переменной processing и регистры переключения не совпадают.

Попробуйте char processing;

0 голосов
/ 16 мая 2018

Поскольку 'processing' является переменной int, вы должны использовать регистр 1 вместо регистра '1'.Не следует использовать '' с 1.

0 голосов
/ 16 мая 2018

Проблема может заключаться в том, что вы проверяете свой оператор switch по отношению к регистру символов ('1' -> char) вместо int (1).

Компилятор не жалуется, потому что char имеет соответствующее значение типа int (см. Таблицу ASCII) и может выполнять неявное приведение.

Попробуйте удалить 'или изменить тип обработки на char

EDIT: Вы также получаете «результат не инициализирован», потому что у вас нет регистра по умолчанию для вашего коммутатора, и, учитывая вышеприведенную ошибку, вы никогда не достигнете ни одного из других случаев и присвоите значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...