作业帮 > 综合 > 作业

VB编程,得出一组随机数组后,为什么不能比较得出它们的最大值最小值

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/06/25 10:51:39
VB编程,得出一组随机数组后,为什么不能比较得出它们的最大值最小值
如下图所示,通过数组里每一个元素的比较,用循环结构循环九次后应该能得出最大最小值啊.

但是,结果是这样的:
VB编程,得出一组随机数组后,为什么不能比较得出它们的最大值最小值
你的每次循环里都对Ma和Mi重新赋值了,所以,里面保存的都不是当前的最大值或者取小值,而且下面的比较算出来的Ma,Mi是相邻的两个数中较大或者较小的数,修改一下:
Private Sub Form_Click()
Dim X(9) As Integer, Ma!, Mi, Av!
Randomize '初始化随机种子只需一次
'在VB里,如果没有使用Option Base指定数组下标开始序号,默认是从1开始的,而不是0
For i = 1 To 9
    X(i) = Int(Rnd * 71 + 30)
Next i

For i = 1 To 9
    Print X(i);
Next i

'求取大值,最小值时,先假设最大值,最小值是第一个元素,然后往后循环比较
'在循环外面赋值
Ma = X(1)
For i = 2 To 9
    If Ma < X(i) Then
        Ma = X(i)
    End If
Next i

Mi = X(1)
For i = 2 To 9
  
    If Mi > X(i) Then
        Mi = X(i)
    End If
Next i

For i = 1 To 9
    Av = Av + X(i)
Next i
Av = Av / 9
Print Tab(0); "Ma="; Ma; "Mi="; Mi; "Avg="; Av
End Sub