当前位置:编程学习 > C/C++ >>

题目1035:找出直系亲属

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.zzzyk.com
                        for(j=1;j<=num-2;j++)  
                            printf("great-");  
                        printf("grandchild\n");  
                    }  
                }  
                else  
                    printf("-\n");  
            }  
        }  
        scanf("%d %d",&n,&m);  
    }  
}  
 
补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,