Dim x(10)
Dim i, j, k
Private Sub Form_Load()x(1) = 30
x(2) = 28
x(3) = 13
x(4) = 34
x(5) = 32
x(6) = 30
x(7) = 50
x(8) = 1
x(9) = 75
x(10) = 3
End SubPrivate Sub Form_Click()
Dim i, j, k, s
i = 1
For j = i + 1 To 10
If x(i) > x(j) Then
x(i) = x(j)
k = j
s = x(i)
End If
Next
Print Str(k); "号" & s
End Sub结果是 8号1   
----------------------------------------Private Sub Form_Click()
Dim i, j, k
For i = 1 To 5
For j = i + 1 To 10
If x(i) > x(j) Then
k = x(i): x(i) = x(j): x(j) = k
End If
Next
Print x(i)
Next
End Sub
----------------------------------------这个只能找出最小的5个,可是数组名被改了。显示不了几号多少

解决方案 »

  1.   

    Dim x(1 To 10)
    'Dim i, j, kPrivate Sub Form_Load()    x(1) = 30
        x(2) = 28
        x(3) = 13
        x(4) = 34
        x(5) = 32
        x(6) = 30
        x(7) = 50
        x(8) = 1
        x(9) = 75
        x(10) = 3
    End Sub
    '
    'Private Sub Form_Click()
    '    Dim i, j, k, s
    '
    '    i = 1
    '
    '    For j = i + 1 To 10
    '        If x(i) > x(j) Then
    '            x(i) = x(j)
    '            k = j
    '            s = x(i)
    '        End If
    '    Next
    '
    '    Print Str(k); "号" & s
    'End Sub'结果是 8号1
    '----------------------------------------Private Sub Form_Click()
        Dim i, j, k
        Dim a(1 To 2, 1 To 10)
        
        For i = 1 To 10
            a(1, i) = x(i)
            a(2, i) = i
        Next i
        
        For i = 1 To 5
            For j = i + 1 To 10
                If a(1, i) > a(1, j) Then
                    k = a(1, i): a(1, i) = a(1, j): a(1, j) = k
                    k = a(2, i): a(2, i) = a(2, j): a(2, j) = k
                End If
            Next j
            
            Print a(1, i) & ", " & a(2, i)
        Next i
    End Sub
    '----------------------------------------这个只能找出最小的5个,可是数组名被改了。显示不了几号多少