WOJ 1003 - Birth of Noah

这题要求处理输入的两个名字a和b
第一行输出Yes/No表明a是否是b的祖先;输出"No enough information"如果题意没有给出
第二行输出相同的格式,表明a是否比b活的久。

因此这题要求通读description,找出family tree以及每个人的寿命。
然后就可以很容易地处理了。

以下是本题涉及到的人物:
Adam 930 1
Seth 912 2
Enosh 905 3
Kenan 910 4
Mahalalel 895 5
Jared 962 6
Enoch 365 7
Methuselah  969 8
Lamech 777 9
Noah 0 10
Shem Ham Japheth 0 11

注意本题未告诉数据有多少组,需要使用这样的代码格式
while( scanf("%s%s", a, b) != EOF){
    // do sth.
}
附完整代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h> 

int main() 
{  
    char *a[13]={"Adam","Seth","Enosh","Kenan","Mahalalel",
                    "Jared","Enoch","Methuselah","Lamech","Noah",
                    "Shem","Ham","Japheth"}; 
    int b[13]={1,2,3,4,5,
              6,7,8,9,10,
              11,11,11}; 
    int c[9]={930,912,905,910,895,
              962,365,969,777};
    char str1[100],str2[100];
    while(scanf("%s%s",str1,str2)!=EOF)
    { 
    int i=0,j=0;
    int x,y; 
    x = 0;y = 0; 
    for(i=0;i<13;i++)
        { 
             if(!strcmp(a[i],str1))
             x=i;
        } 
    for(j=0;j<13;j++)
        {
            if(!strcmp(a[j],str2))
            y=j;
        }
 
        if(b[x]<b[y])  printf("Yes\n");  
        else printf("No\n");
        
    if(x>8||y>8) printf("No enough information\n"); 
    else 
    {
        if(c[x]>c[y]) printf("Yes\n"); 
        else printf("No\n"); 
    }
    
        } 
  
    return 0;
} 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值