大家看看,这个用vb怎么做

来源:百度知道 编辑:UC知道 时间:2024/09/27 13:15:02
做一个直角螺旋数阵
从键盘输入n(2<n<12),然后从屏幕输出n行n列的直角螺旋数阵。每个数占4个字符的位置,不足时用空格补足

列入输入5就有:
1
2 12
3 13 11
4 14 15 10
5 6 7 8 9

'我运行过了,正常;你可以点击窗体,输入n值n(2<=n<=12),
Private Function fn(ByVal S As String) As String
For i = Len(S) To 3
S = " " & S
Next i
fn = S
End Function

Private Sub Form_Click() '请点击窗体,输入n值
Dim a(1 To 100, 1 To 100), J, S, R, C, K, T, N, i As Long
Me.AutoRedraw = True
Me.Cls
N = Val(InputBox("输入n的值:"))
S = 0
R = 1
C = 1
K = 0
T = N
For i = 0 To T / 2
J = 1
Do While J < N
S = S + 1
a(R, C) = S
R = R + 1: K = 1
J = J + 1
Loop
J = 1
Do While J < N
S = S + 1
a(R, C) = S
C = C + 1
J = J + 1
Loop
J = 1
Do While J < N
S = S + 1
a(R, C) = S
R = R - 1
C = C - 1
J = J + 1
Loop
R = R + 2
C = C + 1
N = N - 3: K = 0
Next i
For i = 1 To T
For J = 1 To i
If a(i, J) = 0 Then a(i, J) = S + 1
Print fn(Str(a(i, J)));
Nex