VB编程,得出一组随机数组后,为什么不能比较得出它们的最大值最小值如下图所示,通过数组里每一个元素的比较,用循环结构循环九次后应该能得出最大最小值啊.但是,结果是这样的:
来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/20 16:58:38
VB编程,得出一组随机数组后,为什么不能比较得出它们的最大值最小值如下图所示,通过数组里每一个元素的比较,用循环结构循环九次后应该能得出最大最小值啊.但是,结果是这样的:
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