using System.Collections.Generic;
public static void Main(string[] args)
Console.WriteLine("請輸入四則運算式:");
string input = Console.ReadLine();
int result = Calculate(input);
Console.WriteLine("計算結果:" + result);
Console.WriteLine("計算錯誤:" + ex);
static int Calculate(string input)
input = input.Replace(" ", "");
string rpn = ConvertToRPN(input);
static string ConvertToRPN(string input)
Stack<char> operators = new Stack<char>();
Dictionary<char, int> precedence = new Dictionary<char, int>
foreach (char ch in input)
else if (precedence.ContainsKey(ch))
while (operators.Count > 0 && precedence[operators.Peek()] >= precedence[ch])
while (operators.Count > 0 && operators.Peek() != '(')
throw new ArgumentException("輸入包含無效字符。");
while (operators.Count > 0)
static int EvaluateRPN(string rpn)
Stack<int> operands = new Stack<int>();
operands.Push(int.Parse(ch.ToString()));
throw new DivideByZeroException("除數不能為零。");