⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 实验二.cpp

📁 这是几个编译原理实验程序,有做实验的朋友可以用用!
💻 CPP
字号:
#include<string.h>
#include<stdio.h>
#define NUM  20
#define SIZE  8
main()
   { char str1[NUM][SIZE],str2[2*NUM][SIZE];
     char str3[2*NUM][SIZE],c[4*NUM];
     int i,n,j=1,k=1,m=0,x=0;
     printf("n is the number of the P(while U::=Vt,the Vt only is a character).\n");
     printf("n=");
     scanf("%d",&n);
     printf("Please input the P of G[Z]:\n");
     for(i=0;i<=n;i++)
       { gets(str1[i]);
         if(strlen(str1[i])==5)
           { if(str1[i][0]!=str1[i][4])
               { strcpy(str2[j],str1[i]);
		 j+=2;
               }
           }
         else if(strlen(str1[i])>5)
		{ strcpy(str2[j],str1[i]);
		  j+=2;
		}
       }
     if(str2[1][0]!='Z')
       { for(i=3;i<j-1;i+=2)
           { if(str2[i][0]=='Z')
               { strcpy(str1[0],str2[i]);
		 strcpy(str2[i],str2[1]);
		 strcpy(str2[1],str1[0]);
		 break;
	       }
	   }
       }
     loop:for(i=0;i<strlen(str2[k]);i++)
	    { if(str2[k][i]>='A'&&str2[k][i]<='Z')
		{ c[m]=str2[k][i];
		  str2[k-1][i]='*';
		  m++;
		}
	    }
     for(i=3;i<j-1;i+=2)
       { for(n=0;n<m;n++)
	   { if(str2[i][0]==c[n]&&str2[i-1][0]!='*')
	       { k=i;
		 goto loop;
	       }
	   }
       }
     printf("man zu tiao jian yi de gui ze:\n");
     for(n=1,i=1;i<j-1;i+=2)
       { for(k=0;k<m;k++)
	   { if(str2[i][0]==c[k])
	       { strcpy(str3[n],str2[i]);
		 printf("%s\n",str2[i]);
		 n+=2;
		 break;
	       }
	   }
       }
     for(k=0;k<m;k++)
       c[k]='\n';
     printf("ya suo de wen fa gui ze:\n");
     for(i=1;i<n-1;i+=2)
       { if(strlen(str3[i])==5);
           { if(str3[i][4]>='a'&&str3[i][4]<='z')
	       { c[x]=str3[i][0];
		 x++;
		 printf("%s\n",str3[i]);
	       }
	   }
       }
     loop1:for(i=1;i<n-1;i+=2)
	     { for(m=0;m<x;m++)
		 for(j=4;j<strlen(str3[i]);j++)
		   { if(str3[i][j]==c[m]&&str3[i-1][j]!='*')
		       { c[x]=str3[i][0];
			 x++;
			 str3[i-1][j]='*';
		       }
		   }
	     }
	for(i=1;i<n-1;i+=2)
	  { for(j=4;j<strlen(str3[i]);j++)
	      for( m=0;m<x;m++)
		{ if(str3[i][j]==c[m])
		    { printf("%s\n",str3[i]);
		      break;
		    }
		}
	  }
   }

⌨️ 快捷键说明

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