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

这是一个用VBA实现的程序,通过冒泡法找出一组数据中的最大值和最小值。程序包括两个子过程和一个函数:`MaxData`使用冒泡排序找到最大值并展示所有数组元素;`maxmin`函数计算最大值和最小值,并在窗体上显示;`GotData`子过程用于从字符串中提取数值并转换为数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


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 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值