下面是一个5*5阶的螺旋方阵,试编程打印出此形式的n*n(n<10)阶的方阵(顺时针旋进)

2025年03月20日 15:36
有1个网友回答
网友(1):

Dim n As Integer, a() As Integer, c As Integer, m As Integer, d As Integer
Private Sub Command1_Click()
ReDim a(n ^ 2)
m = n
For j = 1 To n ^ 2
a(j) = j
Next
If n Mod 2 = 0 Then
d = n / 2
Else
d = n \ 2 + 1
End If
For j = 1 To d
For u = 1 To n
If b + 1 > m ^ 2 Then Exit For
b = b + 1
CurrentX = (u + j - 1) * 5: CurrentY = j * 5
Print a(b)
Next
c = (u + j - 1)
For u = 1 To n - 1
If b + 1 > m ^ 2 Then Exit For
b = b + 1
CurrentX = (c - 1) * 5: CurrentY = (u + j) * 5
Print a(b)
Next
c = u + j - 1
For u = 1 To n - 1
If b + 1 > m ^ 2 Then Exit For
b = b + 1
CurrentX = (n + j - 1) * 5 - (u) * 5: CurrentY = (c) * 5
Print a(b)
Next
c = n + 1 - u
For u = 1 To n - 2
If b + 1 > m ^ 2 Then Exit For
b = b + 1
CurrentX = (c + j - 1) * 5: CurrentY = (n + j - 1) * 5 - (u) * 5
Print a(b)
Next
n = n - 2
Next
End Sub
Private Sub Form_Load()
Scale (0, 0)-(100, 100)
n = InputBox("请输入方阵的阶数n:")
End Sub

自己变得 很好用 不管多少阶 阶数太多 的话 把行距拉大就行了 就是程序里的 *5 把5 改大点 就好了 !!!!