(顺时针旋进)1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9.
Private Sub Command1_Click()
Dim n As Integer 'n阶
n = Int(Val(Text1.Text))
Dim a() As Integer 'n阶方阵
ReDim a(n, n)
Dim r As Integer '方阵圈数
If n Mod 2 = 0 Then
r = n / 2
Else
r = n \ 2 + 1
End If
Dim i As Integer, j As Integer, num As Integer
num = 0
For i = 1 To r
For j = i To n - i + 1 '第i圈top排
num = num + 1
a(i, j) = num
Next
For j = i + 1 To n - i + 1 '第i圈right排
num = num + 1
a(j, n - i + 1) = num
Next
For j = n - i To i Step -1 '第i圈bottom排
num = num + 1
a(n - i + 1, j) = num
Next
For j = n - i To i + 1 Step -1 '第i圈left排
num = num + 1
a(j, i) = num
Next
Next
For i = 1 To n
For j = 1 To n
Print a(i, j);
Next
Next
End Sub
本回答被提问者和网友采纳