自动转换机

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

}

原文地址:https://www.cnblogs.com/lgy520/p/6109136.html