求一组数据中的最大值及最小值

来源:互联网 发布:淘宝客如何骗取佣金 编辑:程序博客网 时间:2024/04/28 01:05

这是起泡法,建议你多读有关算法的书


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 

原创粉丝点击