大家来看看这段c/c++程序哪出错了。。

大家来看看这段c/c++程序哪出错了。。
typedef char OptrType;
.
.
.
char Precede(OptrType optr,char c){
//算符优先级比较
char relationship;
//the code used for comparing
char a=optr;
char b=c;

if(a=='+'||a=='-'){
if(b!='+'&&b!='-'&&b!='#')relationship='<';
else relationship='>';
}
if(a=='*'||a=='/'){
if(b!='(')relationship='<';
else relationship='>';
}
if(a=='('){
if(b==')')relationship='=';
if(b=='#')exit(0);
else relationship='<';
}
if(a==')'){
if(b=='(')exit(0);
else relationship='>';
}
if(a=='#'){
if(b==')')exit(0);
if(b=='#')relationship='=';
else relationship='<';
}
return relationship;
}//precede()结束
.
.
.
void main(){
.
.
.
switch(Precede(GetTop(OPTR,temp),ch)){ //参数没问题
case '<' :
...
break;
case '=':
...
break;
case '>':
Pop(OPTR,optr1);
...
break;
}
}
switch语句在main函数中是顺序结构,但是不被执行,是怎么回事呢?
编译能通过
你的拦闷函数写的逻清基辑有问题,举个例子,a = ‘+’简正弯,b = ‘-’
你的输出结果是‘>’..
← 上一篇: 下一篇: →