首页 > 其他 > 详细

自动机

时间:2016-12-06 22:34:08      阅读:171      评论:0      收藏:0      [点我收藏+]

第一次做,不是很会,再接再厉,努力改善代码

#include<stdio.h>
#define MAX 20
main()
{
    int i=0,j=0,k,l,m,n,number;
    char ch;
    char a[MAX][MAX];
    printf("请输入正规式:");
    ch=getchar();
    while(ch!=\n)
    {
        if(ch==/)
        {
            a[i][j]=\0;
            j=0;
            i++;
            ch=getchar();
            continue;
        }
        a[i][j]=ch;
        j++;
        ch=getchar();
    }
    a[i][j]=\0;
    number=2;
    for(k=0;k<=i;k++)
    {
        l=0;
        m=1;
        while(a[k][l]!=\0)
        {
            if(a[k][l]==.||a[k][l]==*)
            {

               if(a[k][l]==.&&m==1)
               {
                 m++;
                 printf("f(0,%c)=%d\n",a[k][l-1],number);
                 if(a[k][l+2]==\0)
                  printf("f(%d,%c)=1\n",number,a[k][l+1]);
                 number=number+1;
               }

               else if(a[k][l]==.&&m!=1)
               {
                   m++;
                   printf("f(%d,%c)=%d\n",number-1,a[k][l-1],number);
                   if(a[k][l+2]==\0)
                    printf("f(%d,%c)=1\n",number,a[k][l+1]);
                    number=number+1;
               }

               else if(a[k][l]==*&&m==1)
               {
                   m++;
                   printf("f(0,~)=%d\n",number);
                   printf("f(%d,%c)=%d\n",number,a[k][l-1],number);
                   if(a[k][l+1]==\0)
                    printf("f(%d,~)=1\n",number);
                   else
                    printf("f(%d,~)=%d\n",number,number+1);
                   number=number+1;
               }

               else if(a[k][l]==*&&m!=1)
               {
                    m++;

                   printf("f(%d,%c)=%d\n",number,a[k][l-1],number);
                   if(a[k][l+1]==\0)
                    printf("f(%d,~)=1\n",number);
                   else
                    printf("f(%d,~)=%d\n",number,number+1);
                   number=number+1;
               }
            }
            l++;
        }
    }

}

 

自动机

原文:http://www.cnblogs.com/q1736699804/p/6139290.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!