怎么想也想不出来。。(眼泪T.T)...vb 初学者敢问大家 ...

来源:百度知道 编辑:UC知道 时间:2024/05/12 06:35:22
Private Sub Form_Click()
Dim mark() As Integer, i%, n%, aver!
n = InputBox("输入学生的人数")
ReDim mark(1 To n)
aver = 0
For i = 1 To n
mark(i) = Int(Rnd * 101)
aver = aver + mark(i)
Next i
ReDim Preserve mark(1 To n + 2)
mark(n + 1) = aver / n
mark(n + 2) = 0

For i = 1 To n
If mark(i) > mark(n + 1) Then mark(n + 2) = mark(n + 2) + 1
Next i
For i = 1 To n
Print "mark("; i; ")="; mark(i)
Next i
Print "平均分="; mark(n + 1), "高于平均分人数="; mark(n + 2)

End Sub

为什么在上面 平均分是 mark(n + 1) = aver / n
和 高于平均分人数是mark(n + 2) = mark(n + 2) + 1 ???
想了老半天》。。 。

mark(n + 1) = aver / n
'这句将平均分存放在mark(n + 1)里
(AVER是总分数
在前一个循环 aver = aver + mark(i) 已经累加了
N 是总人数,n = InputBox("输入学生的人数") )

If mark(i) > mark(n + 1) Then mark(n + 2) = mark(n + 2) + 1
'这句话找出了大于平均
'存放在mark(n + 2) 里
(实现累加当然要+ 1)