这题要求处理输入的两个名字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
注意本题未告诉数据有多少组,需要使用这样的代码格式
第一行输出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.
}
// 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;
}