vb:输出矩阵中的最大值

来源:百度知道 编辑:UC知道 时间:2024/09/21 00:50:57
我要算矩阵里的最大值,但一直是0,帮我看看哪错了
Public Class Form1
Dim a%(,)
Private Sub TextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Click
Dim i, j, m, n, max, maxi, maxj As Integer
m = Val(InputBox("input row m")) - 1
n = Val(InputBox("input col n")) - 1
For i = 0 To m
For j = 0 To n

ReDim a(i, j)

If max < a(i, j) Then
max = a(i, j)
maxi = i
maxj = j
End If
a(i, j) = Val(InputBox("input data"))
TextBox1.Text &= a(i, j) & Space(6 - Len(Trim(a(i, j))))
Next
TextBox1.Text &= vbCrLf
Next
TextBox1.Text &= "max is " & max & " is in " & maxi + 1 & "row" & maxj + 1 & "col

每次执行 ReDim 语句时,当前存储在数组中的值都会全部丢失。Visual Basi 重新将数组元素的值置为 Empty(对 Variant 数组)、置为 0(对 Numeric 数组)、置为 零长度字符串(对 String 数组)或者置为 Nothing(对于对象的数组)。

在用 Preserve 关键字时,只能改变多维数组中最后一维的上界;如果改变了其它维或最后一维的下界,那么运行时就会出错。所以可这样编程:

ReDim Preserve Matrix (10, UBound (Matrix, 2) + 1)

而不可这样编程:

ReDim Preserve Matrix (UBound (Matrix, 1) + 1, 10)