自动机
#include<stdio.h> char t[100]={'\0'}; char prog[100]; char ch; int i,p; main(){ char ch; char en; char t[100],get[100],cv[100],ci[100]; int c,i,z,j,p,n,count; printf(" Please input :"); count=0; do{ ch=getchar(); t[count++]=ch; }while(ch!='#'); count--; p=0; c=1; z=0; en='Y'; for(i=0;i<count;i++) { if(t[i]=='|') { for(j=0;j<i;j++) { prog[j]=t[j]; if(prog[j]=='.'){ printf("f(%d,%c)=%d\n",z,t[j-1],c); printf("f(%d,%c)=%c\n",c,t[j+1],en); } else if(prog[j]=='*'){ printf("f(%d,~)=%d\n",z,c); printf("f(%d,~)=%c\n",c,en); } } z=0; c=1; for(j=i+1;j<count;j++) { cv[j]=t[j]; if(cv[j]=='.'){ printf("f(%d,%c)=%d\n",z,t[j-1],c); printf("f(%d,%c)=%c\n",c,t[j+1],en); } else if(cv[j]=='*'){ printf("f(%d,~)=%d\n",z,c); printf("f(%d,~)=%c\n",c,en); } } } } }
我的程序仅仅识别一个符号的自动机
有待改善