?? dalu.c
字號:
char LL1[20][50];
char first[20][50];
char follow[20][50];
char father[20];
int i=0,j1=0,j2;
int p1=0,t1=3;
int p2=0,t2=0;
int f1=0,f2=-1;
int n,v,fi,fj;
int x,y;
char ch;
int echo1(char c)
{ int i=0,m=0;
for(i=0;i<=n;i++)
if((LL1[i][0]==c)&&(LL1[i][3]=='@')) m=1;
return(m);
}
void echo2(char c)
{
for(i=0;i<=n;i++)
{ if(LL1[i][0]==c){ j1=2;
j2=3;
if(LL1[i][j2]<='Z'&&LL1[i][j2]>='A')
{ while(j2==3||(echo1(LL1[i][j1])==1&&(LL1[i][j2]<='Z'&&LL1[i][j2]>='A')))
{ father[f1]=LL1[i][j2];
f1++;
j1++;
j2++;
}
}
else { father[f1]=LL1[i][3];
f1++;
}
}
}
f2++;
}
int echo3(char c)
{ int k,k1=0;
if(p1==0) k1=0;
else for(k=0;k<p1;k++) { if(first[k][0]==c) {k1=1;break;} }
return(k1);
}
main()
{ scanf("%c",&ch);
while(ch!='?')
{ while(ch!=';')
{ LL1[i][j1]=ch;
j1++;
scanf("%c",&ch);
}
LL1[i][j1]=';';
i++;
j1=0;
scanf("%c",&ch);
scanf("%c",&ch);
}
n=i-1;
for(v=0;v<=n;v++)
{ if(echo3(LL1[v][0])==0)
{ echo2(LL1[v][0]);
while(f1!=f2)
{ if(father[f2]<='Z'&&father[f2]>='A')
echo2(father[f2]);
else f2++;
}
fi=0;
fj=0;
for(fi=0;fi<f2-1;fi++)
for(fj=fi+1;fj<f2;fj++)
if(father[fi]==father[fj]) father[fj]='A';
first[p1][0]=LL1[v][0];
first[p1][1]='=';
first[p1][2]='{';
for(f1=0;f1<f2;f1++)
if(father[f1]>'Z'||father[f1]<'A') {first[p1][t1]=father[f1];t1++;}
first[p1][t1]='}';
f1=0;
f2=-1;
t1=3;
p1++;
}
}
printf("FIRST:\n");
x=0;
y=0;
for(x=0;x<p1;x++)
{ while(first[x][y]!='\0')
{ printf("%c",first[x][y]);
y++;
}
printf("\n");
y=0;
}
getch();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -