Да. s_rez это символ из строки, x - его приоритет, s2 - символ из стека, у - приоритет. Приоритет числа - 0, скобок - 1, +- - 2, */ - 3, ^ - 4.
Тогда "b = (y < x)" равнозначно "b = false".
Но почему? На момент вычисления оператора в х и у находятся некоторые значения. Если у меньше х, то выражение в скобках будет истино, и соответственно переменной b присвоится true.
1. Из чего следует ваше утверждение?
2. Эта конструкция в коде работает, именно так, как предполагалось, возведение в степень обрабатывается иначе, чем +-*/
-- 19.06.2019, 19:39 --А неправильные последовательности скобок у вас тоже отсекаются за тот же самый проход по входной строке? А то может уже правда переписать в виде классической сортировочной станции и знать, что ничего патчить не придётся?
Ошибки во входной строке пока не обрабатываются никак. Это мой метод написания программ: разбить задачу на этапы. Сперва я добьюсь, что-бы правильные выражения вычислялись правильно, потом (может быть, при необходимости) допилю обработку ошибок.
Что за классическая сортировочная станция? Я почитал в википедии, но, честно говоря, мало что понял. Алгоритм вычисления обратной польской нотации я взял отсюда:
https://habr.com/ru/post/282379/