VB题解读!!!

[复制链接]
查看11 | 回复2 | 2008-12-10 15:50:29 | 显示全部楼层 |阅读模式
这是题目:
当输入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 N70 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
??
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 To i + 1 Step -1
??
bb(k4, i) = Jsq
??
Jsq = Jsq + 1
??
Next
Next
'下面开始输出
For i = 1 To N
??
For k1 = 1 To N
??
Print bb(i, k1),
Next
Print
Next
End Sub
我是初学者,大家不要笑话!
请各位将解释加到程序问号后面啊!
谢谢啦!

回复

使用道具 举报

千问 | 2008-12-10 15:50:29 | 显示全部楼层
Option ExplicitPrivate Sub Form_Click()Dim N As Integer, i As Integer, k1 As Integer, k2 As Integer, k3 As Integer, k4 As IntegerDim bb() As Integer, Jsq As Integer'下面开始计算N = Val(InputBox("请输入数字"))If N70 ThenMsgBox "输入的数字必须在1-70之间!"Exit SubEnd IfReDim bb(1 To N, 1 To N) '定义数组bb(行数,列数)Jsq...
回复

使用道具 举报

千问 | 2008-12-10 15:50:29 | 显示全部楼层
为了比较容易理解,我们代入1个数进去,比如我输入:4ReDim bb(1 To N, 1 To N) 'Redim bb(1 to 4,1 to 4),这是个二维数组,下标从bb(1,1)到bb(4,4)Jsq = 1For i = 1 To N \ 2 + IIf((N Mod 2) = 0, 0, 1) 'for i=1 to 4/2+i...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行