一、二维数组(矩阵)操作
1、求矩阵元素的最大值
Dim a(5, 5) As Integer
'省略给数组a赋值代码
'求数组a的最大值
Max = a(1, 1) '假设第一个数为最大值初值
For i = 1 To 5
For j = 1 To 5
If a(i, j) > Max Then
Max = a(i, j)
End If
Next j
Next i
'循环结束后,max获得最大值
'注意for i循环必须从1开始,不能从2开始
'若for i循环从2开始,那a(1,2),a(1,3),a(1,4),a(1,5)都无法参加比较
2、求方阵对角线元素之和、两个对角线元素之和
假定有如下定义:
Const N% = 6
Dim a(1 to N,1 to N) as Integer
则a数组的主、副对角线元素分别为:
1.主对角线元素:a(1,1)、a(2,2)、…a(i,i)…a(N,N),“左上-右下”元素,即元素行、列下标相同;
2.副对角线元素:a(1,N)、a(2,N - 1)、…a(i,N – i + 1)…a(N,1),“右上-左下”元素,即第1行最后一个、第2行倒数第2个……第i行倒数第i个元素。

黑色线条表示的是主对角线,红色线条表示的副对角线
Sum1 = 0 '获得主对角线之和
Sum2 = 0 '获得副对角线之和
For i = 1 To N
For j = 1 To N
If i = j Then '求主对角线元素之和
Sum1 = Sum1 + a(i, j)
End If
If i + j = N + 1 Then '求副对角线元素之和
Sum2 = Sum2 + a(i, j)
End If
Next j
Next i
3、列与列互换,如第2列和第4列互换
For i = 1 To N
t = a(i, 2)
a(i, 2) = a(i, 4)
a(i, 2) = t
Next i
注意:a(i, 2)表示第2列的数组元素,a(i,4)表示第4列的数组元素,如果是第2行与第4行互换,则可用a(2, i)表示第2行的数组元素,a(4,i)表示第4行的数组元素。
4、二维数组每行最大值及其在该行中的位置
Dim a(20, 5) As Integer '定义20行5列的矩阵
For i = 1 To 20
Max = a(i, 1) '假设该行第一个数是最大值初值
maxi = 1 '获得假设初值的列下标
For j = 1 To 5
If a(i, j) > Max Then Max = a(i, j): maxi = j
Next j
Print "第"; i; "行最大值"; Max, "在该行的"; maxi; "位置"
Next i
注意:该题还可以扩展为求所有行最大值平均值、各行平均数的最大值、各行最小数的平均值;每行在某个范围内(如小于100)元素值之和、平均值;每行的偶数最大值、奇数最小值等。
5、矩阵四周围元素之和,能被某数整除的个数
Dim a(7, 7) As Integer
如上声明的数组a,对数组a而言其四周围的元素即为第一行、第七行、第一列和第七列的数组元素。
第一行数组元素满足a(1,j),j从1到7
第七行数组元素满足a(7,j),j从1到7
第一列数组元素满足a(i,1),i从1到7
第七列数组元素满足a(i,7),i从1到7
Sum=0
For i = 1 To 7
For j = 1 To 7
If i = 1 Or i = 7 Or j = 1 Or j = 7 Then
Sum = Sum + a(i, j)
End If
Next j
Next i