Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

26.10.2013, 00:09. Просмотров 375. Ответов 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.
как можно устранить такой эффект?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2013, 00:09
Я подобрал для вас темы с готовыми решениями и ответами на вопрос приоритет операций в калькуляторе (C++):

Функция дужки(приоритет операций) в калькуляторе - C++
Надо сделать скобки в калькуляторе: сделать дополнительную ф-цию которая будет считать введеные даные после ввода "(", после ввода ")"...

Приоритет операций - C++
Здравствуйте, а не подскажите что в С-подобных языках приоритетнее: сложение/вычитание, побитовые операции, умножение/деление

приоритет операций - C++
while(*a++==*b++ && *a!=NULL) хочу сравнить до конца строки "а". почему не работает? где-то дело в приоритете, а где найти не...

Приоритет побитовых операций - C++
Всем привет. Столкнулся с непоняшкой: // Объявляем два массива и инициализируем их unsigned char A={0xFF, 0x03, 0x00,...

Логические операции и приоритет операций - C++
Привет всем, объясните, пожалуйста: 1)За что отвечает эта часть кода? bool xor(bool a, bool b) { return (a||b)&&!(a&&b); } ...

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2013, 00:09
Привет! Вот еще темы с ответами:

в калькуляторе 2+2*2=8 - C++
не получается сделать так, чтобы калькулятор считал 2+2*2=8, как это реализовать? Есть мнение что нужно что-то дописать в "+", но что......

Ошибка в калькуляторе - C++
Я только учусь, захотел сделать калькулятор консольный. Что неправильно? Пишу выражение, ответ всегда 0. #include <iostream> #include...

Ошибка в калькуляторе C++ - C++
Здравствуйте, написал простой калькулятор для теста на языке C++ Выдает такие ошибки: "метку case можно использовать только в...

Факториал в калькуляторе. - C++
Всем привет. Делаю очередное задание из книжки Страуструпа, был дан багованый калькулятор (основанный на разбиении выражений на лексемы)....


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru