C語言源碼: [cpp] #include<stdio.h> int main() { int n,m,i,T[26],a,b,num,j,k; char s[4]; scanf("%d %d",&n,&m); while(n||m) { for(i=0;i<26;i++) T[i]=-1; for(i=0;i<n;i++) { scanf("%s",s); if(s[1]>='A'&&s[1]<='Z') T[s[1]-'A']=s[0]-'A'; if(s[2]>='A'&&s[2]<='Z') T[s[2]-'A']=s[0]-'A'; } for(k=0;k<m;k++) { scanf("%s",s); a=s[0]-'A'; b=s[1]-'A'; num=0; i=a; while(i!=b&&T[i]!=-1) { i=T[i]; num++; } if(i==b) { if(num==1) printf("parent\n"); else if(num==2) printf("grandparent\n"); else { for(j=1;j<=num-2;j++) printf("great-"); printf("grandparent\n"); } } else { i=b; while(i!=a&&T[i]!=-1) { i=T[i]; num++; } if(i==a) { if(num==1) printf("child\n"); else if(num==2) printf("grandchild\n"); else { www.2cto.com for(j=1;j<=num-2;j++) printf("great-"); printf("grandchild\n"); } } else printf("-\n"); } } scanf("%d %d",&n,&m); } }