这是起泡法,建议你多读有关算法的书
Private Sub Form_Click()
Dim d()
d = Array(45, 12, 7, 0, -5, 100, 3, 58.2)
MaxData d
End Sub
Sub MaxData(Data())
Dim Max As Single
Dim i As Integer
Dim h As Integer
Dim s As Integer
Dim d
For Each d In Data
s = s + 1
Next
For i = 0 To s - 1
If i <> 0 Then
For h = i To 0 Step -1
If h = 0 Then Exit For
If Data(h) > Data(h - 1) Then
Max = Data(h): Data(h) = Data(h - 1): Data(h - 1) = Max
Else
Exit For
End If
Next h
End If
Next i
For i = 0 To s - 1
Debug.Print Data(i);
Next i
End Sub
'模块
Public Function maxmin(x() As Single, obj As Form)
Dim n1 As Integer, n2 As Integer
Dim i As Integer
n1 = UBound(x)
n2 = LBound(x)
maxnumber = x(n1)
minnumber = x(n2)
For i = n2 + 1 To n1
If x(i) > minnumber Then
maxnumber = x(i)
ElseIf x(i) < minnumber Then
minnumber = x(i)
End If
Next i
obj.Text2.Text = "最大值为" & maxnumber
obj.Text3.Text = "最小值为" & minnumber
End Function
'窗体
Private Sub Command1_Click()
Dim xx() As Single
Dim arr
arr = Split(Text1.Text, ",")
l = UBound(arr)
ReDim xx(l)
For i = 0 To l
xx(i) = arr(i)
Next
maxmin xx, Me
End Sub
Rem Gotdata()标准模块
Sub GotData(datum As String, xx() As Single)
Dim number As String
Dim i As Integer, j As Integer
j = 0
number = " "
For i = 1 To Len(datum)
If Mid(datmu, i, 1) = " " Or Mid(datum, i, 1) = "," Then
If number <> " " Then
ReDim Preserve xx(j)
xx(j) = Val(number)
number = " "
j = j + 1
End If
Else
number = number + Mid(datum, i, 1)
End If
If i = Len(datum) And number <> " " Then
ReDim Preserve xx(j)
xx(j) = Val(number)
End If
Next i
End Sub