甲、乙、丙、丁、戊五个人要么是女排队员,要么是女篮队员。虽然他们自己都知道相互间的身份,但其他人不知道。在一次联欢会上,她们请大家根据她们说的话来推理判断谁是女排队员,谁是女篮队员。她们说的话如下:  
甲对乙说:“你是女排队员”  
乙对丙说:“你和丁都是女排队员”  
丙对丁说:“你和乙都是女篮队员”  
丁对戊说:“你和乙都是女排队员”  
戊对甲说:“你和丙都不是女排队员”  
教练说:“规定同队的人(即女排对女排、女篮对女篮)说的是真话,对异队的人说的是假话。”  
 
请编程判断谁是女排队员,谁是女篮队员?  
请大家帮忙写出代码并加以注释.

解决方案 »

  1.   

    访问地址: http://oliver88888888.go.nease.net/
      

  2.   

    请大家看我哪里写错了。其中0代表女排,1代表女篮。a,b,c,d,e分别代表甲、乙、丙、丁、戊:
    Private Sub Form_Activate()
    Dim a, b, c, d, e, a1, b1, c1, d1, e1 As Integer
    For a = 0 To 1
    For b = 0 To 1
    For c = 0 To 1
    For d = 0 To 1
    For e = 0 To 1
    If a + b + c + d + e <> 5 And a + b + c + d + e <> 0 Then
    a1 = (b = 1) - (a = 1)
    b1 = (c = 1 And d = 1) - (b = 1 And c = 1)
    c1 = (d = 0 And b = 0) - (c = 0 And d = 0)
    d1 = (e = 1 And b = 1) - (d = 1 And e = 1)
    e1 = (a = 0 And c = 0) - (e = 0 And a = 0)If b1 = 0 And c1 = 0 And d1 = 0 And e1 = 0 And a1 = 0 ThenPrint a; b; c; d; e
    End If
    End If
    Next e
    Next d
    Next c
    Next b
    Next a
    End Sub
      

  3.   

    不好意思,我只解出乙和戊两名队员,不知道对不对?
    Private Sub Form_Activate()
    Dim a, b, c, d, e As Integer    '甲=a、乙=b、丙=c、丁=d、戊=e、女排为1、女篮为0
    If a = 1 Then
    b = 1
    ElseIf a = 0 Then
    b = 0
    If b = 1 Then
    c = 1
    d = 1
    ElseIf b = 1 Then
    c = 0
    d = 0
    If d = 1 Then
    e = 1
    b = 1
    ElseIf d = 0 Then
    e = 0
    b = 0
    If e = 0 Then
    a = 0
    c = 0
    ElseIf e = 1 Then
    a = 1
    c = 1
    If c = 0 Then
    d = 0
    b = 0
    ElseIf c = 1 Then
    d = 1
    b = 1
    End If
    End If
    End If
    End If
    End If
    Print "甲="; a
    Print "乙="; b
    Print "丙="; c
    Print "丁="; d
    Print "戊="; e
    End Sub
    按照推理:丁是女排、甲是女篮、丙是女篮呵呵
      

  4.   

    Private Sub Command1_Click()
    Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer
    Dim result(1) As String
    result(0) = ":女排队员"
    result(1) = ":女篮队员"
    For a = 0 To 1
    For b = 0 To 1
    For c = 0 To 1
    For d = 0 To 1
    For e = 0 To 1
    If (b = 0) = (a = b) And (c = 0 And d = 0) = (b = c) And (d = 1 And b = 1) = (c = d) And (e = 0 And b = 0) = (d = e) And (a = 0 And c = 0) = (e = a) Then MsgBox "甲" & result(a) & vbCrLf & "乙" & result(b) & vbCrLf & "丙" & result(c) & vbCrLf & "丁" & result(d) & vbCrLf & "戊" & result(e)
    Next
    Next
    Next
    Next
    Next
    End Sub