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

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

Восстановить пароль Регистрация
 
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
26.10.2013, 00:09     приоритет операций в калькуляторе #1
В целом программа работает нормально, но с минусом косячина конкретная! вот код верхней функции
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     приоритет операций в калькуляторе
Посмотрите здесь:

Вставить между цифрами 1, 2,..., 8, 9 в данном порядке, знак одной из 4-х арифметических операций так, чтобы результат восьми послед-х операций =100 C++
C++ Приоритет операций
C++ Факториал в калькуляторе.
Функция дужки(приоритет операций) в калькуляторе C++
в калькуляторе 2+2*2=8 C++
Ошибка в калькуляторе C++
C++ приоритет операций
Приоритет побитовых операций C++

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

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

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