自动机

#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);
                }
            }
         }
     }
}

我的程序仅仅识别一个符号的自动机

有待改善


  

 

posted @ 2016-11-24 11:28  207钟程泰  阅读(168)  评论(0编辑  收藏  举报