VB的,高手们帮看一下

来源:百度知道 编辑:UC知道 时间:2024/06/24 00:11:33
Private Sub Command1_Click()
Dim a(0 To 100) As Integer
For X = 0 To 19
Label2.Caption = Label2.Caption + " " + Trim(Int((100 * Rnd) + 1))
Next X
End Sub

Private Sub Command2_Click()
Dim Max As Integer, Min As Integer, P As Integer, S As Integer
Max = X(0): Min = X(0)
For X = 0 To 19
If Max < X(i) Then Max = X(i)
If Min > X(i) Then Min = X(i)

S = S + X(i)
Next
P = S / 20
Label3 = ""
Label3 = "最大值:" + Max + vbCrLf
Label3 = "最小值:" + Min + vbCrLf
Label3 = "平均数:" + P
End Sub

高手们帮我看下这里哪里错了???
还有command2这里的代码还可以省点吗???

在command2的过程里面你没有定义数组x()。我猜你可能是要用command1里面的a(),所以代码改了一下:
Dim a(0 To 19) As Integer'这个在通用里面定义

Private Sub Command1_Click()
Dim X As Integer
For X = 0 To 19
a(X) = Int((100 * Rnd) + 1)
Label2.Caption = Label2.Caption & " " & a(X)
Next X
End Sub

Private Sub Command2_Click()
Dim Max As Integer, Min As Integer, P As Integer, S As Integer
Dim R As String‘这个是我自己加的,后面写起来方便点
Max = a(0): Min = a(0)
For X = 0 To 19
If Max < a(X) Then Max = a(X)'你原来这里的循环变量搞错了
If Min > a(X) Then Min = a(X)
S = S + a(X)
Next X
P = S / 20
Label3 = ""
R = "最大值:" & Max & vbCrLf
R = R & "最小值:" & Min & vbCrLf
R = R & "平均数:" & P
Label3 = R
End Sub

ps:在连接字符串的时候最好不要用加号+,有可能出现类型转换的问题,用连字符&要好的多

你command2里的 X是从那里来的?
是Command1里的X?
局部变量是没办法通用的。
并且你对X的操作也不对,
X(0)是数组,
For X = 0 这里你又把他当作普通的数字。明