利用真值表法求取主析取范式以及主合取范式的实现副本
#include "stdio.h"#include "stdlib.h"#include "string.h"#include "math.h"#define N 50void pd(int b[N
#include"stdio.h" #include"stdlib.h" #include"string.h" #include"math.h" #defineN50 voidpd(intb[N],intf); intH1(charT1[N],charT2[N],intT3[N],inty); intH2(charT1[N],charT2[N],intT3[N],inty); intmain() { inti1,i2,d=1,T3[N],kh=0,jg,j=0,y; intw=0,hequ[N],h=0,x=0,xiqu[N]; charT1[N],T2[N],T10[N],s; hequ[0]=-1; xiqu[0]=-1; printf("#########################################\n"); printf("##!##\n"); 用表示否定 printf("##&##\n"); 用表示合取 printf("##|##\n"); 用表示析取 printf("##^##\n"); 用表示条件 printf("##~##\n"); 用表示双条件 printf("#########################################\n\n"); printf(":\n"); 请输入一个合法的命题公式 gets(T1); strcpy(T10,T1); for(i1=0;i1<strlen(T1);i1++) { if(T1[i1]==')'||T1[i1]=='(') kh++; if(T1[i1]>='a'&&T1[i1]<='z'||T1[i1]>='A'&&T1[i1]<='Z') { for(i2=0;i2<j;i2++) if(T2[i2]==T1[i1]) d=0; if(d==1) { T2[j]=T1[i1]; j++; } d=1; } } 1

