WOJ 1003 - Birth of Noah

来源:互联网 发布:网易公开课 网络不给力 编辑:程序博客网 时间:2024/04/27 18:09
这题要求处理输入的两个名字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;} 


0 0
原创粉丝点击