VB中的一道题

来源:百度知道 编辑:UC知道 时间:2024/06/08 07:48:24
A,B,C和D人中有1个是小偷,审问中,A说:“我不是小偷”;B说:“C是小偷”;C说:“小偷肯定是D”;D说:“C在冤枉人”。其中有三人说真话,一人说假话。请编程找出谁说谎,谁是小偷

'用1 2 3 4 分别代表 A B C D
Dim m(1 To 4)
m(1) = "234" '是B/C/D
m(2) = "3" '是C
m(3) = "4" '是D
m(4) = "123" '是A/B/C

For i = 1 To 4 '假设小偷为i
真话数% = 0
For j = 1 To 4 '在假设小偷条件下,验证说话真假
If InStr(m(j), CStr(i)) Then 真话数% = 真话数% + 1
Next j
If 真话数% = 3 Then '如果3个为真话,1个为假话
MsgBox "小偷是" & mid("ABCD",i,1)
End If
Next i

不错