VB题解读!!!

来源:百度知道 编辑:UC知道 时间:2024/09/23 10:24:58
这是题目:
当输入1,屏幕输出:
1
输入2,屏幕输出:
1 2
4 3
输入3,屏幕输出:
1 2 3
8 9 4
7 6 5
输入4,屏幕输出:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

... ...
以此类推。。。最多到70

下面是答案,里面标?号的地方是不明白的地方,希望高手给予详细解答!
谢谢了!

Option Explicit

Private Sub Form_Click()
Dim N As Integer, i As Integer, k1 As Integer, k2 As Integer, k3 As Integer, k4 As Integer
Dim bb() As Integer, Jsq As Integer

'下面开始计算
N = Val(InputBox("请输入数字"))
If N < 1 Or N > 70 Then
MsgBox "输入的数字必须在1-70之间!"
Exit Sub
End If

ReDim bb(1 To N, 1 To N)
Jsq = 1

For i = 1 To N \ 2 + IIf((N Mod 2) = 0, 0, 1) ??

For k1 = i To N - i + 1 ??
bb(i, k1) = Jsq ??
Jsq = Jsq + 1 ??
Next

For k2 = i + 1 To N - i + 1 ??
bb(k2, N - i + 1) = Jsq ?

Option Explicit

Private Sub Form_Click()
Dim N As Integer, i As Integer, k1 As Integer, k2 As Integer, k3 As Integer, k4 As Integer
Dim bb() As Integer, Jsq As Integer

'下面开始计算
N = Val(InputBox("请输入数字"))
If N < 1 Or N > 70 Then
MsgBox "输入的数字必须在1-70之间!"
Exit Sub
End If

ReDim bb(1 To N, 1 To N) '定义数组bb(行数,列数)
Jsq = 1

For i = 1 To N \ 2 + IIf((N Mod 2) = 0, 0, 1) '循环圈数 单数的话要加一圈
'第一圈时 i=1
For k1 = i To N - i + 1 '列数 从第一列到总列数减圈数加一
bb(i, k1) = Jsq '数组(第一圈的行数,列数)=计数器
Jsq = Jsq + 1 '计数器加一
Next

For k2 = i + 1 To N - i + 1 '行数 从第一行加一 到 总行数减圈数加一
bb(k2, N - i + 1) = Jsq '数组(行数,总列数减圈数加一)=计数器
Jsq = Jsq + 1 '计数器加一
Next

For k3 = N - i To i Step -1 '列数 从总列数减圈数到圈数列
bb(N - i + 1, k3) = Jsq '数组(总行数减圈数加一,列数)=计数器
Jsq = Jsq + 1 '计数器加一
Next

For k4 = N - i