zoukankan      html  css  js  c++  java
  • 自动机

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

    #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!='
    ')
        {
            if(ch=='/')
            {
                a[i][j]='';
                j=0;
                i++;
                ch=getchar();
                continue;
            }
            a[i][j]=ch;
            j++;
            ch=getchar();
        }
        a[i][j]='';
        number=2;
        for(k=0;k<=i;k++)
        {
            l=0;
            m=1;
            while(a[k][l]!='')
            {
                if(a[k][l]=='.'||a[k][l]=='*')
                {
    
                   if(a[k][l]=='.'&&m==1)
                   {
                     m++;
                     printf("f(0,%c)=%d
    ",a[k][l-1],number);
                     if(a[k][l+2]=='')
                      printf("f(%d,%c)=1
    ",number,a[k][l+1]);
                     number=number+1;
                   }
    
                   else if(a[k][l]=='.'&&m!=1)
                   {
                       m++;
                       printf("f(%d,%c)=%d
    ",number-1,a[k][l-1],number);
                       if(a[k][l+2]=='')
                        printf("f(%d,%c)=1
    ",number,a[k][l+1]);
                        number=number+1;
                   }
    
                   else if(a[k][l]=='*'&&m==1)
                   {
                       m++;
                       printf("f(0,~)=%d
    ",number);
                       printf("f(%d,%c)=%d
    ",number,a[k][l-1],number);
                       if(a[k][l+1]=='')
                        printf("f(%d,~)=1
    ",number);
                       else
                        printf("f(%d,~)=%d
    ",number,number+1);
                       number=number+1;
                   }
    
                   else if(a[k][l]=='*'&&m!=1)
                   {
                        m++;
    
                       printf("f(%d,%c)=%d
    ",number,a[k][l-1],number);
                       if(a[k][l+1]=='')
                        printf("f(%d,~)=1
    ",number);
                       else
                        printf("f(%d,~)=%d
    ",number,number+1);
                       number=number+1;
                   }
                }
                l++;
            }
        }
    
    }
  • 相关阅读:
    测试用例的优先级的概念
    Day02.测试用例和测试方法
    day01.测试理论
    开发python 面试题
    4.路径页面接口开发
    ps命令没有显示路径找到命令真实路径
    Linux软链接和硬链接
    Linux文件元数据和节点表结构
    jinjia2语言
    Ansible之YAML语言
  • 原文地址:https://www.cnblogs.com/q1736699804/p/6139290.html
Copyright © 2011-2022 走看看