很简单的
一个一维数组
s(9)包含十个元素
判断里面是否有重复元素
什么算法
最好有代码
谢谢~

解决方案 »

  1.   

    Private Sub Command1_Click()
    Dim s(9) As String
    Dim foundflg As Integer
    'For k = 0 To 9
    '    s(k) = k
    'Next
    s(0) = "K1"
    s(1) = "K2"
    s(2) = "K3"
    s(3) = "K1"
    s(4) = "K4"
    s(5) = "K5"
    s(6) = "K6"
    s(7) = "K7"
    s(8) = "K8"
    s(9) = "K9"For i = 0 To 9
        foundflg = 0
        For j = 0 To 9
            If s(i) = s(j) And i <> j Then
                foundflg = 1
                Exit For
            End If
        Next j
        
        If foundflg = 1 Then
            MsgBox "有相同元素:" & i & "和" & j
            Exit For
        End If
    Next i
    End Sub
      

  2.   

    在楼上的基础上稍微改下
    For i = 0 To 9
        foundflg = 0
        For j = i+1 To 9
            If s(i) = s(j) Then
                foundflg = 1
                Exit For
            End If
        Next j
        
        If foundflg = 1 Then
            MsgBox "有相同元素:" & i & "和" & j
            Exit For
        End If
    Next i
      

  3.   


    Option ExplicitPrivate Sub Command1_Click()
        Dim s(10) As String
        Dim i As Integer
        Dim bExist As Boolean
        
        For i = 1 To 10
            s(i - 1) = "Item" & i
        Next
        s(8) = "Item8"            '第9个(下标为8)内容改成Item8,与第8个相同
        bExist = HaveTheSameItem(s, i)          '判断
        If bExist = True Then
            MsgBox "存在相同元素,第一个相同元素为第" & i & "个,内容为" & s(i)
        End If
        
        
    End SubPrivate Function HaveTheSameItem(s() As String, ByRef Index As Integer) As Boolean
        Dim i As Integer
        Dim col As New Collection
        
        On Error GoTo ms:
        For i = 0 To UBound(s)
            col.Add "", "Key_" & s(i)
        Next i
        
        HaveTheSameItem = False
        
        Exit Function
    ms:
        HaveTheSameItem = True
        Index = i
    End Function
      

  4.   

    单循环判断Private Sub Command1_Click()
    Dim s$(), ss$
    s = Split("0,1,2,3,4,5,6,7,8,9", ",")
    For i = 0 To UBound(s)
        If 0 < InStr(ss, s(i) & vbCrLf) Then MsgBox "第" & i + 1 & "个重复": Exit For
        ss = ss & s(i) & vbCrLf
    Next i
    End Sub
      

  5.   

    改下数字试试Private Sub Command1_Click()
    Dim s$(), ss$, i
    s = Split("0,1,2,111,11,13", ",")
    For i = 0 To UBound(s)
        If 0 < InStr(ss, s(i) & vbCrLf) Then MsgBox "第" & i + 1 & "个重复": Exit For
        ss = ss & s(i) & vbCrLf
    Next i
    End Sub
      

  6.   

    如果只有9个数的数组,建议print在窗体上然后自己用眼睛看……O(∩_∩)O哈哈~没有什么别的意思啊,只是程序设计主要是方便使用者,或者加速处理一些东西,所以,我个人认为如果只有10个数的话眼睛直观的看,和程序计算的时间差不上太多的.
      

  7.   

    呵呵,谢谢楼上提醒
    修改了一下Private Sub Command1_Click()
    Dim s$(), ss$
    s = Split("0,1,2,3,4,5,6,7,8,0", ",")
    ss = vbCrLf
    For i = 0 To UBound(s)
        If 0 < InStr(ss, vbCrLf & s(i) & vbCrLf) Then MsgBox "第" & i + 1 & "个重复": Exit For
        ss = ss & s(i) & vbCrLf
    Next i
    End Sub
      

  8.   

    这个还出错嘛?Private Sub Command1_Click()
    Dim s$(9), ss$
    's = Split("0,1,2,3,4,5,6,7,8,0", ",")
    s(0) = "0"
    s(1) = "1"
    s(2) = "2"
    s(3) = "3"
    s(4) = "4"
    s(5) = "5"
    s(6) = "6"
    s(7) = "7"
    s(8) = "8"
    s(9) = "0"
    ss = vbCrLf
    For i = 0 To 9
        If 0 < InStr(ss, vbCrLf & s(i) & vbCrLf) Then MsgBox "第" & i + 1 & "个重复": Exit For
        ss = ss & s(i) & vbCrLf
    Next i
    End Sub