早教吧作业答案频道 -->其他-->
请教FREEPASCAL12.警察局抓了A、B、C、D四名偷窃嫌疑犯,其中有一个人是小偷。审问中A说:“我不是小偷。”B说:“C是小偷。”C说:“小偷肯定是D。”D说:“C在冤枉人。”现在已经知道
题目详情
请教 FREE PASCAL
12. 警察局抓了A、B、C、D四名偷窃嫌疑犯,其中有一个人是小偷。审问中A说:“我不是小偷。”B说:“C是小偷。”C说:“小偷肯定是D。”D说:“C在冤枉人。”现在已经知道四个人中三个人的是真话,一人说的是假话,问到底谁是小偷?
12. 警察局抓了A、B、C、D四名偷窃嫌疑犯,其中有一个人是小偷。审问中A说:“我不是小偷。”B说:“C是小偷。”C说:“小偷肯定是D。”D说:“C在冤枉人。”现在已经知道四个人中三个人的是真话,一人说的是假话,问到底谁是小偷?
▼优质解答
答案和解析
var f:array['a'..'d'] of boolean;
s:longint;
ch:char;
begin
for ch:='a' to 'd' do
begin
f[ch]:=true; //枚举谁是小偷,做标记
s:=0; //说真话数量计数器
if not f['a'] then inc(s); //a不是小偷则计数器加一
if f['c'] then inc(s); //c是小偷则s+1
if f['d'] then inc(s); //d是小偷则s+1
if not f['d'] then inc(s); //d不是小偷则s+1
if s=3 then writeln(ch); //如果说真话的数量有三句说明当前枚举的小偷是正确的
f[ch]:=false; //释放标记,枚举下个小偷
end;
end.
希望楼主采纳
s:longint;
ch:char;
begin
for ch:='a' to 'd' do
begin
f[ch]:=true; //枚举谁是小偷,做标记
s:=0; //说真话数量计数器
if not f['a'] then inc(s); //a不是小偷则计数器加一
if f['c'] then inc(s); //c是小偷则s+1
if f['d'] then inc(s); //d是小偷则s+1
if not f['d'] then inc(s); //d不是小偷则s+1
if s=3 then writeln(ch); //如果说真话的数量有三句说明当前枚举的小偷是正确的
f[ch]:=false; //释放标记,枚举下个小偷
end;
end.
希望楼主采纳
看了请教FREEPASCAL12....的网友还看了以下:
Heseemsnottohavegraspedwhatimeantwhichgreatlyupset 2020-03-30 …
一只老鼠从A点沿长方形逃跑一只花猫同时从A点朝另一方向沿着长方形去捉老鼠,结果在距B点6米的C点处 2020-05-17 …
如图,有一只老鼠沿着平行四边形A→B→C——D的方向逃跑,同时有一只猫也从点A出发沿A→B→C—— 2020-05-17 …
有一只老鼠沿着平行四边形A---->B---->C的方向逃跑,同时有一只猫也从A点出发沿着A--- 2020-05-17 …
湿疹:皮肤瘙痒,挤压火烧抓后出现红色或苍白色风团疹,风团大小不一,发作时间和位置不定,瘙痒无度。 2020-05-31 …
大量出汗招来蚊子叮咬后,机体释放组织胺引发了叮咬部位的过敏反应,同时感觉很痒,手抓后出现红肿.以下 2020-06-16 …
阅读下面的文字,完成下列各题。一把抓徐国平“一把抓”是宗家中药铺百年不倒的招牌。据说这招牌还是慈禧 2020-06-22 …
怎么抓语文现代文阅读的主旨? 2020-06-24 …
填名言警句面对别人做事情总是抓表面现象而不能从根本上解决问题的情况,我们可以用这样一句古语去启迪他 2020-06-24 …
无论是中国特色杜会主义,还是实现中国梦,无论是改革开放,还是党的建设,无论是依法治国,还是反腐倡廉 2020-07-07 …