利用C语言找出直系亲属

2013-07-22 17:55:29 · 作者: · 浏览: 202

  利用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);

  }

  }