有几道用FOR循环做的题:
1.选票统计:有a,b,c,d四位候选人,n位投票人,统计时,a,b,c,d以外的字符为弃权,按得票的多少打印出候选人的代号及其票数。
2.a,b,c,d四名小偷嫌疑人,只有一个是真的,
a说 我不是
b说 c是
c说 d肯定是
d说 c冤枉人
他们说的话其中3人为真一人为假,求小偷是谁?
有几道用FOR循环做的题:
1.选票统计:有a,b,c,d四位候选人,n位投票人,统计时,a,b,c,d以外的字符为弃权,按得票的多少打印出候选人的代号及其票数。
2.a,b,c,d四名小偷嫌疑人,只有一个是真的,
a说 我不是
b说 c是
c说 d肯定是
d说 c冤枉人
他们说的话其中3人为真一人为假,求小偷是谁?
2.答案是C。代码:
program tou;
var t:char;
begin
for t:='a' to 'd' do
if ord(t<>a)+ord(t=c)+ord(t=d)+ord(t<>d)=1 then writeln(t);
readln;
end.
解释:
ord(true)=1
ord(false)=0,这样一来, ord(t<>'a')+ord(t='c')+ord(t='d')+ord(t<>'d')通过循环得到的thief的结果如果相加等于3