Option Base 1
Dim a(20, 5) As Integer
Private Sub cmdRead_Click()               '读取数据
    Open App.Path & "\in5.dat" For Input As #1
    For i = 1 To 20
       For j = 1 To 5
           Input #1, a(i, j)
           txtArray = txtArray + Str(a(i, j)) + Space(2)
       Next j
       txtArray = txtArray + Chr(13) + Chr(10)
    Next i
    Close #1
End SubPrivate Sub cmdCalc_Click()                ’计算每一行平均值,并得出最大的平均值
  Dim a As Integer
   Dim sum As Integer
   Dim average(20) As Integer
   For i = 1 To 20
    sum = 0
    For j = 1 To 5
        sum = sum + a(i, j)
       
    Next
     average(i) = sum / 5
    Next
    a = average(1)
   For i = 2 To 20
    If a < average(i) Then
        a = average(i)
    End If
Next
txtMax.Text = a
End Sub
程序最后运行结果是  编译错误,缺少数组。
多谢了

解决方案 »

  1.   

    全局变量和局部变量不可重名(a)
    Option Base 1
    Dim a(20, 5) As Integer
    Private Sub cmdRead_Click() '读取数据
     ' Open App.Path & "\in5.dat" For Input As #1
      For i = 1 To 20
      For j = 1 To 5
      'Input #1, a(i, j)
      txtArray = txtArray + Str(a(i, j)) + Space(2)
      Next j
      txtArray = txtArray + Chr(13) + Chr(10)
      Next i
      Close #1
    End SubPrivate Sub cmdCalc_Click() '计算每一行平均值,并得出最大的平均值
      Dim a1 As Integer
      Dim sum As Integer
      Dim average(20) As Integer
      For i = 1 To 20
      sum = 0
      For j = 1 To 5
      sum = sum + a(i, j)
       
      Next
      average(i) = sum / 5
      Next
      a1 = average(1)
      For i = 2 To 20
      If a1 < average(i) Then
      a1 = average(i)
      End If
    Next
    txtMax.Text = a1
    End Sub
      

  2.   

    全局变量和局部变量不可重名(a)
    Option Base 1
    Dim a(20, 5) As Integer
    Private Sub cmdRead_Click() '读取数据
      Open App.Path & "\in5.dat" For Input As #1
      For i = 1 To 20
      For j = 1 To 5
      Input #1, a(i, j)
      txtArray = txtArray + Str(a(i, j)) + Space(2)
      Next j
      txtArray = txtArray + Chr(13) + Chr(10)
      Next i
      Close #1
    End SubPrivate Sub cmdCalc_Click() '计算每一行平均值,并得出最大的平均值
      Dim a1 As Integer
      Dim sum As Integer
      Dim average(20) As Integer
      For i = 1 To 20
      sum = 0
      For j = 1 To 5
      sum = sum + a(i, j)
       
      Next
      average(i) = sum / 5
      Next
      a1 = average(1)
      For i = 2 To 20
      If a1 < average(i) Then
      a1 = average(i)
      End If
    Next
    txtMax.Text = a1
    End Sub
    过程序中再定义dim a as integer在这个过程中就覆盖掉了两局数组变量a
    这样的错误并不提示,这里提示,是因为你把本过程中定义的dim a as integer当数组用是错的。
      

  3.   

    过程序中再定义dim a as integer在这个过程中就覆盖掉了全局数组变量a