矩阵转置vb

来源:百度知道 编辑:UC知道 时间:2024/09/21 18:37:52
Private Sub Command1_Click()
Dim a() As Integer
n = InputBox("输入行个数")
m = InputBox("输入列个数")
ReDim a(1 To n, 1 To m)
Randomize
Print "生成矩阵"
For i = 1 To n
For j = 1 To m
a(i, j) = Int(Rnd * 100 + 1)
Print a(i, j);
Next j
Print
Next i
End Sub

Private Sub Command2_Click()
Print "转置"
For i = 1 To n
For j = 1 To m
if i<j then
temp = a(i, j)
a(i, j) = a(j, i)
a(j, i) = temp
end if
Print a(i, j);
Next j
Print
Next i
End Sub

temp = a(i, j)
a(i, j) = a(j, i)
a(j, i) = temp
这里错了,因为a(j, i)和a(i, j)可能是一样的,
所以你要么用两个数组
要么直接打印a(j, i)就可以了

Dim a(1, 2) As Integer
Dim i, j As Integer
Dim s1, s2 As String
s1 = "" : s2 = ""
Randomize()
For i = 0 To 1
For j = 0 To 2
a(i, j) = Int(Rnd() * 9) + 1
Next
Next
Dim b(2, 1) As Integer
For i = 0 To 1
For j = 0 To 2
b(j, i) = a(i, j)
s1 += Str(a(i, j))
Next
s1 += Chr(13) + Chr(10)
Next
For i = 0 To 2
For j = 0 To 1
s2 += Str(b(i, j))
Next
s2 += Chr(13) + Chr(10)
Next
MsgBox("a数组为:" + vbCrLf + s1 + vbCrLf + "b数组为:" + vbCrLf + s2)