我正在尝试制作一个具有操作顺序的简单计算器。我在互联网上阅读并找到了RPN(反向波兰表示法)的算法。
编辑:
举个例子:2 * 5 - 3 + 4
好的,我照你们说的做了,现在检查一下:
Proc 是数字和操作的字符串数组。Proc 将是 {2, *, 5, -, 3, +, 4}
这是代码:
int tempt = 0;
Stack <Double> stc = new Stack <Double>();
while (tempt < proc.length)
{
try
{
Double num = Double.parseDouble(proc[tempt]);
stc.push(num);
tempt++;
}
catch (Exception e)
{
char [] stcs = proc[tempt].toCharArray();
switch (stcs[0])
{
case '+':
{
double a2 = stc.pop();
double a1 = stc.pop();
stc.push(a1 + a2);
tempt++;
break;
}
case '-':
{
double a2 = stc.pop();
double a1 = stc.pop();
stc.push(a1 - a2);
tempt++;
break;
}
case 'x':
{
double a2 = stc.pop();
double a1 = stc.pop();
stc.push(a1 * a2);
tempt++;
break;
}
case '÷':
{
double a2 = stc.pop();
double a1 = stc.pop();
stc.push(a1 / a2);
tempt++;
break;
}
}
}
仍然不起作用
我怎样才能使它也能正常工作?请帮帮我!