随机生成由两位正整数所构成的4行5列的二维数组,求与之对应的标记数组。若数组元素的值大于数组元素的平均值,则标记为"H",若小于平均值,则标记为"L",若等于则标记为"E"。具体要求: 1、窗体界面由2个文本框和3个命令按钮组成,请参照参考界面完成所有对象的属性设置; 2、单击"生成数组"按钮,在左侧文本框中显示4行5列的数组; 3、单击"标记数组"按钮,在右侧文本框中显示标记数组; 4、单击"清除"按钮,将两文本框清空,并给"生成数组"按钮设置焦点。
求大神解答~~~
Dim ary(4, 5) As Integer
Dim mark(4, 5) As String
Dim sum As Integer
Dim avg As Integer
Private Sub Command1_Click()
For i = 0 To 3
For j = 0 To 4
Randomize Timer
ary(i, j) = Int(89 * Rnd + 10) '10-99
sum = sum + ary(i, j) '和
Text1.Text = Text1.Text & ary(i, j) & " "
Next j
Text1.Text = Text1.Text & vbCrLf
Next i
avg = sum / 20 '平均数
End Sub
Private Sub Command2_Click()
For i = 0 To 3
For j = 0 To 4
If ary(i, j) > avg Then mark(i, j) = "H"
If ary(i, j) = avg Then mark(i, j) = "E"
If ary(i, j) < avg Then mark(i, j) = "L"
Text2.Text = Text2.Text & mark(i, j) & " "
Next j
Text2.Text = Text2.Text & vbCrLf
Next i
End Sub
Private Sub Command3_Click()
Text1.Text = ""
Text2.Text = ""
sum = 0
avg = 0
Command1.SetFocus
End Sub
Private Sub Form_Load()
'Text1.MultiLine = True '在窗体主设计中将多行设为TRUE
'Text2.MultiLine = True
Text1.Text = ""
Text2.Text = ""
End Sub
追问明明有for语句为什么显示错误?
然后数组显示的也不是4行5列
追答要写成 If ary(i, j) > avg Then mark(i, j) = "H"
而不是 If ary(i, j) > avg Then
mark(i, j) = "H"
如果换行就要加 ENDIF