请问:
    我有一个数组myArray(9),里面有10个元素:
农民
工人
知识分子
农民
农民
知识分子
工人
农民
农民
工人
    如何用循环或其他什么方法,去掉其中的重复元素,得出"农民","工人"和"知识分子"。
请写清楚点,我是新手,谢谢~!

解决方案 »

  1.   

    Private Sub Command1_Click()
    Dim b
    Dim a(9)
    b = Array("aaa", "bbb", "bbb", "fff", "aaa", "fff", "aaa", "bbb", "fff", "bbb")
    For i = 0 To 9
      x = 0
      For j = 1 To (i - 1)
        If b(i) = b(j) Then
          x = 1
          End If
          
      Next
      If x = 0 Then
          k = k + 1
          a(k) = b(i)
          Print b(i)
        End If
    NextEnd Sub
    一个类似的,不过我调试不好,帮忙调试一下,可能是我vb出问题了
      

  2.   

    顺便问一下高人,为什么我这样编调试后总会出现一个重复?
    Private Sub Command1_Click()
    Dim b
    Dim a(9)
    b = Array("aaa", "bbb", "bbb", "fff", "aaa", "fff", "aaa", "bbb", "fff", "bbb")
    For i = 0 To 9
      x = 0
      For j = 1 To (i - 1)      '*
        If b(i) = b(j) Then     '*  判断b(i)与其前面项是否有相等的,有的话把x赋值为1
          x = 1                 '*  没有的话就还是原来的0
        End If                  '*
      Next
      If x = 0 Then             '*  如果b(i)与前面所有项都不相等,也就是x还是等于0
          k = k + 1             '*  那么我们把b(i)的值赋给新数组a(9)中的一个值
          a(k) = b(i)           '*
          Print b(i)            '*
        End If                  '*
    NextEnd Sub
      

  3.   

    调试好了,郁闷,竟然是小错误。
    代码是
    Private Sub Command1_Click()
    Dim b
    Dim a(9)
    b = Array("aaa", "bbb", "bbb", "fff", "aaa", "fff", "aaa", "bbb", "fff", "bbb")
    For i = 0 To 9
      x = 0
      For j = 0 To (i - 1)      '*
        If b(i) = b(j) Then     '*  判断b(i)与其前面项是否有相等的,有的话把x赋值为1
          x = 1                 '*  没有的话就还是原来的0
        End If                  '*
      Next
      If x = 0 Then             '*  如果b(i)与前面所有项都不相等,也就是x还是等于0
          k = k + 1             '*  那么我们把b(i)的值赋给新数组a(9)中的一个值
          a(k) = b(i)           '*
                                '*
      End If                    '*
    Next
    For i = 1 To k
      Print a(i)
    NextEnd Sub
      

  4.   

    Private Sub Command1_Click()
    Dim b
    Dim a(9)
    Dim i As Long
    Dim j As Long
    Dim x As Long
    Dim k As Longb = Array("aaa", "bbb", "bbb", "fff", "aaa", "fff", "aaa", "bbb", "fff", "bbb")
    For i = 0 To 9
      x = 0
      For j = i + 1 To 9
        If b(i) = b(j) Then
          x = 1
          Exit For
        End If
          
      Next
      If x = 0 Then
          k = k + 1
          a(k) = b(i)
          Print b(i)
        End If
    NextEnd Sub