C程序设计,目的:计算输入的逻辑表达式(连接词仅限于否定,合取,析取,蕴含,等价)

来源:百度知道 编辑:UC知道 时间:2024/05/20 06:16:23
不要具体程序,只盼能有高手解释一下怎样运用算符优先法,用两个栈,一个存变元,一个存连接词。请说清楚算法,特别是如何实现算符优先级。
表达结果输出为真值表形式

/*在TC2 和 VC6下都可以顺利运行。
做了一个下午。一定要用我这个噢。
有简单的输入错误检测。有完整的说明和
注释*/

#include<stdio.h> /*库文件包含*/
#include<string.h> /*用于字符串操作*/
#include<stdlib.h> /*用于exit函数*/

/**************************************************************************
int check(char *c)
输入参数:
char *c: 输入的字符串
返回参数:
0:字符串中有不符合规定的字符
1: 字符串字符符合规定,没有不符合规定的字符.
功能:
检查字符串中有否除了 0-9, +,-,*,/,(,),之外的其他字符,
如果有,则返回0, 表示出现错误。
若没有,则返回1,表式字符串符合规定。
**************************************************************************/
int check(char *c)
{
int k=0;
while(*c!='\0')
{
if((*c>='0' && *c<='9') || *c=='+' ||
*c=='-' || *c=='*' || *c=='/' ||
*c=='.' || *c=='(' || *c==')' )
{

}
else
{
printf("input error, there have the char not