大家都来写一写,代码判断谁做好事
ck_邬 2010-07-26 11:40:58 在某群看到的题目,用代码实现,题目如下:
山乡希望小学收到一箱捐赠图书,邮件上署名是“兴华中学高二班”,山乡希望小学校 长送来了感谢信,可是兴华中学高二年级有四个班,校长找来了四个班的班长,问他们是哪 个班做的这件好事。一班的班长说:“是四班做的。”二班的班长说:“是三班做的好事。”三 班的班长说:“不是我们班。” 四班的班长说:“三班的班长说的不对。”
四个班的班长都说不是自己班做的,这就难坏了校长,后来得知四个班的班长中有两个 说得是真话,有两个没有说真话,请你利用计算机的逻辑判断编一个程序,找出究竟是哪个班做了这件好事。不能手算后直接打印结果。
大家都来写写吧..
我自己的代码如下:
procedure TForm1.Button2Click(Sender: TObject);
var Count:integer; //符合条件的数量
i:integer; //班的数量
begin
for i:=1 to 4 do
begin
Count:=0;
if i=4 then Count:=Count+1; //1班说是4班
if i=3 then Count:=Count+1; //2班说是3班
if i<>3 then Count:=Count+1; //3班说不是自己
if i=3 then Count:=Count+1; //4班说3班说的不对
if Count=2 then showmessage('是'+IntToStr(i)+'班做的'); //题目为有两个说真话。
end;
end;