逻辑问题 ( 积分: 5 )

  • 主题发起人 主题发起人 adamlee
  • 开始时间 开始时间
A

adamlee

Unregistered / Unconfirmed
GUEST, unregistred user!
Mary, John和 Peter有着红色的,棕色的和金色的头发,他们的年龄为13,14,15岁,请根据下面的线索判断出每个人的头发颜色及岁数:

1. 最小的孩子是金色的头发
2 John比Peter大
3 John不是红色的头发,Peter不是金色的头发。

请编程判断!

谢谢参与!参与网址:http://www.delphipages.cn/dispbbs.asp?boardID=21&ID=564&page=1
 
Mary, John和 Peter有着红色的,棕色的和金色的头发,他们的年龄为13,14,15岁,请根据下面的线索判断出每个人的头发颜色及岁数:

1. 最小的孩子是金色的头发
2 John比Peter大
3 John不是红色的头发,Peter不是金色的头发。

请编程判断!

谢谢参与!参与网址:http://www.delphipages.cn/dispbbs.asp?boardID=21&ID=564&page=1
 
呵呵:
Peter: 红色 14岁
John: 棕色 15岁
Mary: 金色 13岁
 
欢迎到我的论坛参赛,需要提供源代码,谢谢!
 
接受答案了.
 
搞定:

const PeopleArr:array[1..3] of string=('Mary','John','Peter');
HairArr:array[1..3] of string=('红色','棕色','金色');
AgeArr:array[1..3] of string=('13','14','15');
var h1,h2,h3,a1,a2,a3:integer;
begin
for h1:=1 to 3 do
for h2:=2 to 3 do //John不是红色的头发,从2开始
if (h1<>h2) and (6-h1-h2<>3) then //Peter不是金色的头发
for a1:=1 to 3 do
for a2:=1 to 3 do
if a1<>a2 then
begin
h3:=6-h1-h2;
a3:=6-a1-a2;
if ((a1=1) and (h1=3) or
(a2=1) and (h2=3)) //最小的孩子是金色的头发,Peter不是金发不用判断
and
(AgeArr[a2]>AgeArr[a3]) //John比Peter大
then
begin
Showmessage('Mary: '+HairArr[h1]+' '+AgeArr[a1]+#13+
'John: '+HairArr[h2]+' '+AgeArr[a2]+#13+
'Peter:'+HairArr[h3]+' '+AgeArr[a3]
);
end;
end;
end;

Mary 金色 13
John 棕色 15
Peter 红色 14
 
后退
顶部