用栈实现表达式求值的程序,运行结果是不对的解决方案
用栈实现表达式求值的程序,运行结果是不对的
自己写的,但会出错,想好长时间了,望高手解决
#include <stdio.h>
#include <conio.h>
struct nuStack
{
int array[50];
int top;
};
struct opStack
{
char array[50];
int top;
};
int precede(char a,char b) /*符号优先级 1表示> 2表示= 3表示 < 4表示无效 */
{
if((a== '( '&&b== ') ')||(a== '# '&&b== '# '))
{
return 2;
}
else
{
if((a== '( '&&b== '# ')||(a== ') '&&b== '( ')||(a== '# '&&b== ') '))
{
return 4;
}
else
{
if(a== '( ')
{
return 3;
}
if(a== '# ')
{
return 3;
}
if(a== ') ')
{
return 1;
}
if(b== '# ')
{
return 1;
}
if(b== '( ')
{
return 3;
}
自己写的,但会出错,想好长时间了,望高手解决
#include <stdio.h>
#include <conio.h>
struct nuStack
{
int array[50];
int top;
};
struct opStack
{
char array[50];
int top;
};
int precede(char a,char b) /*符号优先级 1表示> 2表示= 3表示 < 4表示无效 */
{
if((a== '( '&&b== ') ')||(a== '# '&&b== '# '))
{
return 2;
}
else
{
if((a== '( '&&b== '# ')||(a== ') '&&b== '( ')||(a== '# '&&b== ') '))
{
return 4;
}
else
{
if(a== '( ')
{
return 3;
}
if(a== '# ')
{
return 3;
}
if(a== ') ')
{
return 1;
}
if(b== '# ')
{
return 1;
}
if(b== '( ')
{
return 3;
}