C语言 怎么判断运算符的优先级

2022-08-17 教育 118阅读
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;
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com