龙战士火焰气息2:vb高手帮忙

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 14:22:08
13.编程说明:在窗体的单击事件中完成:随机产生100个三位正整数,按从大到小的顺序在窗体上输出。每行5个。当其中的数能被3整除时,用红色显示这些数。
Private Sub Form_click()
Dim temp As Integer, a(100) As Integer, x As Integer
For i = 1 To 100
a(i) = Int(Rnd * 900 + 100)
Next i
For i = 1 To 99
k = i
For j = i + 1 To 100
If a(j) < a(k) Then k = j
Next j
temp = a(i): a(i) = a(k): a(k) = temp
Next i
For i = 1 To 100
Print a(i);: If i Mod 5 = 0 Then Print
Next i
If a(i) Mod 3 = 0 Then
Form1.ForeColor = vbRed
Else
Form1.ForeColor = vbBlack
End If
End Sub
哪里不行啊,为什么它说下标超界啊

已帮你修改:

Private Sub Form_click()
Dim temp As Integer, a(1 To 100) As Integer, x As Integer

For I = 1 To 100
a(I) = Int(Rnd * 900 + 100)
Next I

For I = 1 To 99
k = I

For j = I + 1 To 100
If a(j) < a(k) Then k = j
Next j

temp = a(I): a(I) = a(k): a(k) = temp
Next I

For I = 1 To 100
Print a(I);: If I Mod 5 = 0 Then Print

If a(I) Mod 3 = 0 Then
Form1.ForeColor = vbRed
Else
Form1.ForeColor = vbBlack
End If
Next I
End Sub

Private Sub Form_click()
Dim temp As Integer, a(100) As Integer, x As Integer
Randomize Timer '这里最好初始化RND,否则每次生成都是同样的数
For i = 1 To 100
a(i) = Int(Rnd * 900 + 100)
Next i
For i = 1 To 99
k = i
For j = i + 1 To 100
If a(j) < a(k) Then k = j
Next j
temp = a(i): a(i) = a(k): a(k) = temp
Next i
For i = 1 To 100
Print a(i);: If i Mod 5 = 0 Then Print
If a(i) Mod 3 = 0 Then '你原来的IF语句放在FOR语句外了,因此i是上回的值:101,所以超出了标界
Form1.ForeColor = vbRed
Else
Form1.ForeColor = vbBlack
End If
Next i
End Sub