vb幻阵怎么老是不对

来源:百度知道 编辑:UC知道 时间:2024/06/05 22:42:35
我的代码如下,到底哪里出错了?
Option Base 1
Dim a() As Variant
Private Sub Form_Click()
Dim i As Integer, j As Integer
n = InputBox("请输入奇数N的值", "幻阵")
ReDim a(n + 1, n + 1)
i = n: j = (n + 1) / 2
a(i, j) = 1
For x = 2 To n ^ 2
i = i + 1
j = j + 1
a(i, j) = x
If i > n And j <= n Then
a(1, j) = x
ElseIf i > n And j > n Then
a(i, 1) = x
ElseIf i <= n And j > n Then
a(i - 1, j) = x
ElseIf i <= n And j <= n Then
If a(i, j) <> 0 Then
a(i - 1, j) = x
End If
End If

Next x
For i = 1 To n
For j = 1 To n
Print Str(a(i, j));
Next j
Print
Next i
End Sub
下表越界,到底要怎么改呢?

n = InputBox("请输入奇数N的值", "幻阵")
ReDim a(n + 1, n + 1)
i = n: j = (n + 1) / 2
a(i, j) = 1
For x = 2 To n ^ 2
i = i + 1
j = j + 1

这样定义数组肯定会越界啦。

告 诉 我 什 么 样 的 矩 阵 叫 "幻阵",我 帮 一 帮 你 .