📄 firstfun.c
字号:
#include<stdio.h>
#include<conio.h>
#include<string.h>
static char p[10][10][10],v[10],ft[10][10];
static int q[10],i,j,k,l,n,m,z[10],r,h,b,s[10],c;
void main()
{
clrscr();
for(i=0;i<10;i++)
z[i]=-1;
printf("enter the no.of variables");
scanf("%d",&n);
printf("enter the variables");
for(i=0;i<n;i++)
{
fflush(stdin);
scanf("%c",&v[i]);
s[i]=-1;
}
for (i=0;i<n;i++)
{
printf("How many productions are there in %c",v[i]);
fflush(stdin);
scanf("%d",&q[i]);
printf("enter the productions");
for (j=0;j<q[i];j++)
{
fflush(stdin);
gets(p[i][j]);
}
}
first(0,0);
for (i=0;i<n;i++)
printf("First[%c]={%s}\n",v[i],ft[i]);
}
first (int i,int j)
{
if(i<n)
{
while(j<q[i])
{
if((p[i][j][0]>=65)&&(p[i][j][0]<=91))
{
for(k=0;k<n;k++)
{
if(p[i][j][0]==v[k])
{
z[m]=i;
m++;
first(k,j);
}
}
}
else
{
ft[i][j]=p[i][j][0];
for(r=0;z[r]!=-1;r++)
{
h=z[r];
if(j+1==q[i])
{
z[r]=-1;
m=0;
s[h]=0;
}
ft[h][j]=p[i][j][0];
}
s[i]=0;
}
j++;
}
for(b=0;b<n;b++)
{
if(s[b]==-1)
{
c=1;
break;
}
else
c=0;
}
if(c==1)
first(b,0);
i++;
}
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -