早教吧作业答案频道 -->其他-->
请教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....的网友还看了以下:
从S发出射向平面镜的光线放射后是发散的,它们的反向延长线相较于S',人们根据什么的经验,觉得反射光 2020-04-26 …
明天要上公开课,急需语文S版六年级上册《最佳路径》的课件和教学设计或是课堂实录,记住是S版的,这篇 2020-05-17 …
真空管道抽真空1.3×10-4Pa.L/S.现在想降低点真空度,数值要怎么写啊.1.3×10-4P 2020-05-21 …
请教一逻辑题“有P是S”与“有S是P”均为假,则S与P之间的外延关系是()关系.①全同②S真包含P 2020-05-22 …
留数定理求待定系数X(s)=分子:3s^2+2s+8.分母:s(s+2)(s^2+2s+4).(s 2020-06-04 …
请教动词后面加s的读音(如采纳则加50分)deserve的第三人称单数动词后面要加s即deserv 2020-07-02 …
第三人称单数是在动词前加s还是在动词后加s?第三人称单数出现在动词前加s还是出现在动词后加s? 2020-07-19 …
高数[a,b)是开集还是闭集?教材上说:设S包含于R的n次(指多元),如果S中的每一点均为S的内点 2020-07-31 …
位移到底该用什么表示搞不明白改用X表示还是S表示55555…我们老师一直教我们用X表示,说什么新课 2020-08-03 …
英语疑难请教几个单词尾音的问题,如miracles这里的s应读z]可我却听得是s,这里这个音声带不动 2021-01-12 …