用栈实现表达式求值的程序,运行结果是不对的解决方案

用栈实现表达式求值的程序,运行结果是不对的
自己写的,但会出错,想好长时间了,望高手解决
#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;
                        }