作业帮 > 综合 > 作业

判断合式公式的书写正确性,C语言编程

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/04 05:04:35
判断合式公式的书写正确性,C语言编程
我考虑了两个方向:一是左右括号的数量相等;二是在每一种字符后面应该跟进的字符
如:在字母后面只能跟运算符、右括号;
在运算符后面只能跟左括号、字母、非;
在非后面只能跟字母、左括号;
在左括号后面只能跟左括号、字母、非;
在右括号后面只能跟运算符、右括号.
代码如下:
#include
void main()
{
int i=0,j=0,k=0,l=0,m=0,n=0,sum=0;
char str[100];
scanf("%s",&str);
do
{
\x05sum++;
\x05if((str[i+1]!='(')||(str[i+1]'Z')||(str[i+1]!='*'))
break;
i++;\x05\x05\x05
}while(i
你这题应该采用"递归+分治法"比较容易实现.思路就是应用合式公式的定义进行判断.对具体思路可如下:
对给定的一个公式X进行判断,先根据括号的层次进行分解.
1,X是只含一个运算符的公式,判断并返回它的合法性.
2,否则可以将其进行分解,形式为X=X1⊙X2,或者X=~X1,其中⊙是一个二元运算符,是"非"运算符.接下来递归判断X1 X2是否为合式公式.