利用C语言找出直系亲属的源码我们可以参考如下方法:
C语言源码:
#include
int main()
{
int n,m,i,T[26],a,b,num,j,k;
char s ;
scanf("%d %d",&n,&m);
while(n||m)
{
for(i=0;i<26;i++)
T[i]=-1;
for(i=0;i { scanf("%s",s); if(s >='A'&&s <='Z') T[s -'A']=s[0]-'A'; if(s >='A'&&s <='Z') T[s -'A']=s[0]-'A'; } for(k=0;k { scanf("%s",s); a=s[0]-'A'; b=s -'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 { for(j=1;j<=num-2;j++) printf("great-"); printf("grandchild\n"); } } else printf("-\n"); } } scanf("%d %d",&n,&m); } }