资源简介

此程序采用了加标记法 输入一个程序 得到的是压缩后的结果

资源截图

代码片段和文件信息

# include “stdio.h“
# include “string.h“
main()
{ char a[100][100]={“0“}c[100][100]={“0“}d[100][100]={“0“}e[100][100]={“0“};
  int fijk=0k1k2k3=0k4k5=0t=0;
  char m[100]={“0“} n[100]={“0“};
  printf(“\n请输入规则数:“);
  scanf(“%d“&f);
  printf(“\n请输入文法:\n“);
  for(i=0;i   scanf(“%s“a[i]);
  for(j=0;j   if(a[0][j]>=‘A‘&&a[0][j]<=‘Z‘)
  m[t++]=a[0][j];
  for(k2=0;k2   for(i=1;i   for(j=0;j     if(a[i][0]==m[k2])
 for(k1=0;k1  if(a[i][k1]>=‘A‘&&a[i][k1]<=‘Z‘)
 { for(k4=0;k4  {if(m[k4]==a[i][k1])
 break;
 if(k4>=t-1)
 m[t++]=a[i][k1];
 }
 }
 /*规则1判定后的文法*/
 for(i=0;i for(k1=0;k1  if(a[i][0]==m[k1])
 {for(k2=0;k2  c[k3][k2]=a[i][k2];
  k3++;
 }
 /*规则2的判定*/
 printf(“\n压缩后的文法是:\n“);

评论

共有 条评论