vb循环和条件判断现在有一个数组(5个元素),如果这五个数值有相差小于1的,合并为一组并求平均数,如果相差没有小于1的,保留原数,求最后有几组,并求出各组平均数.如果不清楚就看例子!例
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/30 07:49:45
![vb循环和条件判断现在有一个数组(5个元素),如果这五个数值有相差小于1的,合并为一组并求平均数,如果相差没有小于1的,保留原数,求最后有几组,并求出各组平均数.如果不清楚就看例子!例](/uploads/image/z/6947409-57-9.jpg?t=vb%E5%BE%AA%E7%8E%AF%E5%92%8C%E6%9D%A1%E4%BB%B6%E5%88%A4%E6%96%AD%E7%8E%B0%E5%9C%A8%E6%9C%89%E4%B8%80%E4%B8%AA%E6%95%B0%E7%BB%84%EF%BC%885%E4%B8%AA%E5%85%83%E7%B4%A0%EF%BC%89%2C%E5%A6%82%E6%9E%9C%E8%BF%99%E4%BA%94%E4%B8%AA%E6%95%B0%E5%80%BC%E6%9C%89%E7%9B%B8%E5%B7%AE%E5%B0%8F%E4%BA%8E1%E7%9A%84%2C%E5%90%88%E5%B9%B6%E4%B8%BA%E4%B8%80%E7%BB%84%E5%B9%B6%E6%B1%82%E5%B9%B3%E5%9D%87%E6%95%B0%2C%E5%A6%82%E6%9E%9C%E7%9B%B8%E5%B7%AE%E6%B2%A1%E6%9C%89%E5%B0%8F%E4%BA%8E1%E7%9A%84%2C%E4%BF%9D%E7%95%99%E5%8E%9F%E6%95%B0%2C%E6%B1%82%E6%9C%80%E5%90%8E%E6%9C%89%E5%87%A0%E7%BB%84%2C%E5%B9%B6%E6%B1%82%E5%87%BA%E5%90%84%E7%BB%84%E5%B9%B3%E5%9D%87%E6%95%B0.%E5%A6%82%E6%9E%9C%E4%B8%8D%E6%B8%85%E6%A5%9A%E5%B0%B1%E7%9C%8B%E4%BE%8B%E5%AD%90%21%E4%BE%8B)
vb循环和条件判断现在有一个数组(5个元素),如果这五个数值有相差小于1的,合并为一组并求平均数,如果相差没有小于1的,保留原数,求最后有几组,并求出各组平均数.如果不清楚就看例子!例
vb循环和条件判断
现在有一个数组(5个元素),如果这五个数值有相差小于1的,合并为一组并求平均数,如果相差没有小于1的,保留原数,求最后有几组,并求出各组平均数.如果不清楚就看例子!
例1:一个数组数值分别为 1,3,4,7,8
3和4相差1,7和8相差1,合并为一组,所以一共有3组
第一组数值为1,第二组数值为(3+4)/2,第三组数值为(7+8)/2
输出:组数|1 2 3
数值|1 3.5 7.5
例2:一个数组1,3,4,5,6
分为2组,第一组1,第二组(3+4+5+6)/4
输出:组数|1 2
数值|1 4.5
vb循环和条件判断现在有一个数组(5个元素),如果这五个数值有相差小于1的,合并为一组并求平均数,如果相差没有小于1的,保留原数,求最后有几组,并求出各组平均数.如果不清楚就看例子!例
Private Sub Command1_Click()
Dim k()
Dim k2()
Label1.Caption = "": Label2.Caption = ""
k = Array(4, 7, 5, 6, 9)
'排序
BubbleSort2 k
For i = 0 To UBound(k)
'Debug.Print k(i) '测试排序结果
Next
'分组
ReDim k2(0)
k2(0) = 0
For i = 0 To UBound(k) - 1
If k(i + 1) - k(i) > 1 Then
ReDim Preserve k2(UBound(k2) + 1)
k2(UBound(k2)) = i + 1
End If
Next
ReDim Preserve k2(UBound(k2) + 1)
k2(UBound(k2)) = UBound(k) + 1
'求每组结果
For i = 0 To UBound(k2) - 1
tmp = 0: tmp1 = 0
For n = k2(i) To k2(i + 1) - 1
tmp = tmp + k(n)
tmp1 = tmp1 + 1
Next
tmp = tmp / tmp1
Label1.Caption = Label1.Caption & (i + 1) & " "
Label2.Caption = Label2.Caption & tmp & " "
Next
End Sub
'冒泡排序法
Private Function BubbleSort2(ArrayToSort()) As Boolean
Dim SortLoop As Long
Dim HoldValue
Dim ChangeMade As Boolean
Dim endLoop As Long
ChangeMade = True
Do While ChangeMade
ChangeMade = False
For SortLoop = LBound(ArrayToSort) To UBound(ArrayToSort) - 1
If ArrayToSort(SortLoop) > ArrayToSort(SortLoop + 1) Then
HoldValue = ArrayToSort(SortLoop)
ArrayToSort(SortLoop) = ArrayToSort(SortLoop + 1)
ArrayToSort(SortLoop + 1) = HoldValue
ChangeMade = True
End If
Next SortLoop
Loop
BubbleSort1 = True
End Function