现在的位置: 首页 > 综合 > 正文

判断两个运算符s1,s2的优先顺序

2013年01月28日 ⁄ 综合 ⁄ 共 527字 ⁄ 字号 评论关闭
char Precede(char s1,char s2)
{//判断两个运算符s1,s2的优先顺序,
//若s1优先则返回>,若s2优先则返回<,若s1,s2相同则返回=
 char f;
 switch(s2)
 {
  case '+':
  case '-': if(s1==')'||s1=='#'||s1=='(')
      f='<';
     else
      f='>';
     break;
  case '*':
  case '/': if(s1=='*'||s1=='/'||s1==')')
      f='>';
     else 
      f='<';
     break;
  case '(': if(s1==')')
     {
      printf("ERROR 1 !");
      exit(ERROR);
     }
     else
      f='<';
     break;
  case ')': if(s1=='#')
     {
      printf("ERROR 2 !");
      exit(ERROR);
     }
     else 
     {
      if(s1=='(')
       f='=';
      else
       f='>';
     }
     break;
  case '#': if(s1=='(')
     {
      printf("ERROR 3 !");
      exit(ERROR);
     }
     else 
     {
      if(s1=='#')
       f='=';
      else
       f='>';
     }
     break;
  default : printf("ERROR 4 !");
     exit(ERROR);
 }
 return f;
}

抱歉!评论已关闭.