12 |+5*3 |[Push 12] NeedOpt,Level
12+ |5*3 | NeedVar,HasOpt(+,3),Level
12+5 |*3 |[Push 5] NeedOpt,HasOpt(+,3),Level
12+5* |3 | NeedVar,HasOpt(*,2),HasOpt(+,3),Level
12+5*3 | |[Push 3] NeedOpt,HasOpt(*,2),HasOpt(+,3),Level
| |[Mul] HasOpt(+,3),Level
| |[Add] Level
发一点天书上来………………
[[it] 本帖最后由 StarWing83 于 2008-5-8 17:19 编辑 [/it]]
----------------解决方案--------------------------------------------------------
归约的句柄和运算符的级别?有点汇编的味道
----------------解决方案--------------------------------------------------------
楼上的研几了?
----------------解决方案--------------------------------------------------------
你是问翅膀?
----------------解决方案--------------------------------------------------------
问你。。。
----------------解决方案--------------------------------------------------------
呵呵
还有女的 ----------------解决方案--------------------------------------------------------
#include <stdio.h>
int main( )
{
int ri, repeat;
int op1, op2, res;
char operator;
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%d", &op1);
operator = getchar();
/*---------*/
res=op1;
while(operator!='='){
scanf("%d",&op2);
if(operator=='+')
res=res+op2;
if(operator=='-')
res=res-op2;
if(operator=='*')
res=res*op2;
if(operator=='/')
res=res/op2;
operator=getchar();}
printf("%d\n", res);
}
}
----------------解决方案--------------------------------------------------------
我估计他要的不是那么简单的.要不也不是课程设计了..至少要解四则运算的那种
----------------解决方案--------------------------------------------------------
char EvaluateExpression() {
SqStack *OPND,*OPTR;
char c,x,theta; char a,b;
InitStack(&OPTR); Push(OPTR,'#');
InitStack(&OPND);
c=getchar();
while(c!='#'||GetTop(*OPTR)!='#') {
if(!In(c,OP)) {Push(OPND,c);c=getchar();}
else
switch(Precede(GetTop(*OPTR),c)) {
case '<': Push(OPTR,c); c=getchar(); break;
case '=': Pop(OPTR,&x); c=getchar(); break;
case '>': Pop(OPTR,&theta);
Pop(OPND,&b); Pop(OPND,&a);
Push(OPND,Operate(a,theta,b));
break;
}
}
c=GetTop(*OPND);
DestroyStack(OPTR);
DestroyStack(OPND);
return c;
}
----------------解决方案--------------------------------------------------------
使用栈来写
操作符压栈,操作数就把栈底数和操作符弹出做相应的运算再入栈! ----------------解决方案--------------------------------------------------------