早教吧作业答案频道 -->其他-->
英语翻译publicdoubleCalculator(Stringf)//计算{inti=0,j=0,k;charc;StringBuffers=newStringBuffer();s.append(f);s.append('=');Stringformula=s.toString();//转化为string类型char[]anArray;anArray=newchar[50];Stackmystack=newStack();w
题目详情
英语翻译
public double Calculator(String f)//计算
{
int i=0,j=0,k;
char c;
StringBuffer s=new StringBuffer();
s.append(f);
s.append('=');
String formula=s.toString();//转化为string类型
char[] anArray;
anArray=new char[50];
Stack mystack=new Stack();
while(formula.charAt(i)!='=')
{
c=formula.charAt(i);
switch(c)
{
case '+':
case '-':
while(!mystack.empty()&&mystack.peek().charValue()!='/')
{
anArray[j++]=mystack.pop().charValue();
}
mystack.push(new Character(c));
i++;
break;
case '*':
case '/':
while(!mystack.empty()&&(mystack.peek().charValue()=='*'||mystack.peek().charValue()=='/'))
{
anArray[j++]=mystack.pop().charValue();
}
mystack.push(new Character(c));
i++;
break;
default:while((c>='0'&&c
public double Calculator(String f)//计算
{
int i=0,j=0,k;
char c;
StringBuffer s=new StringBuffer();
s.append(f);
s.append('=');
String formula=s.toString();//转化为string类型
char[] anArray;
anArray=new char[50];
Stack mystack=new Stack();
while(formula.charAt(i)!='=')
{
c=formula.charAt(i);
switch(c)
{
case '+':
case '-':
while(!mystack.empty()&&mystack.peek().charValue()!='/')
{
anArray[j++]=mystack.pop().charValue();
}
mystack.push(new Character(c));
i++;
break;
case '*':
case '/':
while(!mystack.empty()&&(mystack.peek().charValue()=='*'||mystack.peek().charValue()=='/'))
{
anArray[j++]=mystack.pop().charValue();
}
mystack.push(new Character(c));
i++;
break;
default:while((c>='0'&&c
▼优质解答
答案和解析
一般你这种要出入栈的计算器是可以计算表达式的,如可以直接输入2-4*3+4,一般有两个栈,数字栈和符号栈,如上面表达式,数字栈压入2,4;符号栈压入-;当取*号的时候,因为*的优先级比-大所有会将4弹出和3运算然后将12压回数字栈,结果是2,12;符号栈是-;然后取+,比较+与-优先级,同级的从左都右运算,直接压入栈,数字栈为2,12,4;符号栈是-,+;遇到表达式结束符,然后弹出一个符号两个数,运算后将结果压回数字栈,弹出加号,结果是2,16;弹出减号是最终结果14;然后输出结果.要是有括号的可以递归括号内的表达式.详细可百度表达式的栈运算.程序我没看,很多又没格式.
看了 英语翻译publicdoub...的网友还看了以下:
同温同压下,已知下列各反应为放热反应,下列各热化学方程式中热量数值最小的是()A.2A(l)+B( 2020-04-25 …
同温同压下,已知下列各反应为放热反应,下列各热化学方程式中热量数值最小的是()A.2A(l)+B( 2020-05-21 …
化学反应中的热量应用1.2A(l)+B(l)=2C(g);△H=+Q12.2A(g)+B(g)=2 2020-06-04 …
如图为人的泌尿系统组成示意图和某健康人的血浆、原尿和尿液样本分析数据表,请回答下列有关问题:主要成 2020-06-11 …
表中数据是取自某正常人原尿和尿液的样品,如图是肾单位结构模式图.请根据表格和示意图回答问题.(“[ 2020-06-22 …
P3213.数据分析.下表是一个健康人的血浆、原尿、尿液的样品,请根据主要物质的浓度回答:━━━━ 2020-06-22 …
P3213.数据分析.下表是一个健康人的血浆、原尿、尿液的样品,请根据主要物质的浓度回答:━━━━ 2020-06-22 …
下面表格中的数据是某正常人原尿和尿液的样品,如图是肾单位结构模式图.请根据表格和示意图回答下列有关 2020-07-01 …
取某健康人的血浆、原尿和尿液作为样本进行分析,得到如下数据.请根据表中数据回答问题:主要成分样本A 2020-07-16 …
三元一次方程组a*x+b*y+c*z+d=0,e*x+f*y+g*z+h=0,i*x+j*y+k* 2020-08-03 …