Из моего понимания постфиксной нотации ваше выражение exp2
на самом деле недопустимо.Вы оцениваете выражения postfix, оценивая операции слева направо.Итак, чтобы вручную вычислить выражение 12*4*1-/53+
, мы делаем следующее:
Начиная слева, мы сканируем выражение, пока не найдем первый оператор *.Затем мы оцениваем два непосредственных предыдущих операнда, 1 и 2, с помощью оператора * и заменяем эти 3 входных значения на выход, получая 24 * 1- / 53 +.Теперь повторите процесс.
Сканируем слева и находим оператора *.Мы оцениваем его по двум предыдущим операндам, 2 и 4, и снова заменяем входы на выход, получая 81- / 53.Повторите.
На этот раз мы доберемся до оператора -.Мы оцениваем его по двум предыдущим операндам, 8 и 1, и заменяем входные данные выходными, получая.7/53 +.Повторите.
Мы сканируем, чтобы найти оператор /.Но ждать!Слева от оператора есть только один операнд.Это не разрешено, что означает, что ваш ввод неверен.