jj.c

来自「编译原理 一个简单自动机的源程序 判断一个输入的串能否被该自动机接受」· C语言 代码 · 共 53 行

C
53
字号
#include<stdio.h>
void main()
{
int c[4][2]={{1,2},{3,2},{1,3},{3,3}};
char str[30];
char *p=str;
int q[30];

int i,j,h,k=0;
printf("please input a strings with a and b:\n");
scanf("%s",p); 
while(*p)
{
   if((*p)!='a'&&(*p)!='b'&&(*p)!='\0')
   {
    printf("please input a strings with a and b:\n");
    scanf("%s",p);
   }
   else
   {}
   p++;
}
p=str;
while(*p)
{
   if(*p=='a')
   {
    q[k]=0;
   }
   else
    q[k]=1;
   p++;
   k++;
}
i=c[0][q[0]];
h=1;
while (k>1)
{
  
   i=c[i][q[h]];
   j=i;
   h++;
   k--;
} 

if(j==3)
{
   printf("can accept!");
}
else 
   printf("not accept!");
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?