Приоритет операций в Польской инверсной записи - C#
Формулировка задачи:
Разбирая код представленный тут, столкнулся с тем что при вводе например такого выражения a*b*c, результат будет abc**, а должен быть ab*c*.. Но это поправляется добавлением условия равенства индексов операторов.
НО.. операторы выдает ошибку что не все ветви возвращают значения.
Подскажите в чем проблема??
/
и*
или+
и-
имеют равные приоритеты, хотел написать простенькую функцию switch-case которая бы возвращала приоритет входящего знака и столкнулся с проблемойpublic static int PRIOR(char a) { switch (a) { case '/': return 4; case '*': goto case '/'; case '+': return 3; case '-': goto case '*'; case '(': return 2; case '=': return 1; } }
Решение задачи: «Приоритет операций в Польской инверсной записи»
textual
Листинг программы
public static int PRIOR(char a) { switch (a) { case '/': return 4; break; case '*': goto case '/'; break; case '+': return 3; break; case '-': goto case '*'; break; case '(': return 2; break; case '=': return 1; break; default: throw new NotImplementedException(); break; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д