Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
#1

приоритет операций в калькуляторе - C++

26.10.2013, 00:09. Просмотров 340. Ответов 0
Метки нет (Все метки)

В целом программа работает нормально, но с минусом косячина конкретная! вот код верхней функции
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
double func() {
    double res=func1();
    char c=cin.get();
    switch (c) {
    case '+':
        res+=func();
        break;
    case '-':
        res+=func();
        break;
    default:
        cin.putback(c);
    }
    return res;
}
дальше рекурсивно спускаемся до чисел и т.д., так вот подсчет начинается с конца нашего выражения! и операция минус выполняется некорректно.
например 5-5-5, должно быть равно 5-5=0, 0-5=-5. программа считает так 5-(5-5)=5-0=5.
как можно устранить такой эффект?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2013, 00:09     приоритет операций в калькуляторе
Посмотрите здесь:

C++ Строка ввода в калькуляторе
C++ исправить ошибки в калькуляторе
C++ Приоритет операций
C++ Факториал в калькуляторе.
Функция дужки(приоритет операций) в калькуляторе C++
в калькуляторе 2+2*2=8 C++
Ошибка в калькуляторе C++
C++ приоритет операций
Проверка на скобки в строчном калькуляторе C++
Приоритет побитовых операций C++
Логические операции и приоритет операций C++
Ошибка в калькуляторе C++ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 01:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru