一道VB计算题,请指教.

来源:百度知道 编辑:UC知道 时间:2024/05/08 08:01:57
Option Explicit

Private Sub Command1_Click()
Dim A(3, 3) As Integer, I As Integer, J As Integer, K As Integer
I = 3: J = 1
A(I, J) = 1
For K = 2 To 9
If I + 1 > 3 Or J + 1 > 3 Then
If J = 1 Then
I = I - 1
ElseIf A(I - 1, J - 1) = 0 Then
I = I - 1: J = J - 1
ElseIf J = 3 Then
I = I - 1
Else
J = J + 1
End If
ElseIf J = 1 Or I = 1 Then
If A(I + 1, J + 1) = 0 Then
I = I + 1: J = J + 1
Else
J = J + 1
End If
Else
If A(I - 1, J - 1) = 0 Then
I = I - 1: J = J - 1
End If
End If
A(I, J) = K
Next K
End Sub
题目要求算A(1,1)和A(2,3)和A(3,2)的值,答案分别是6,8,3
我不知道是怎么运算出来的,麻烦朋友帮我写一下运算过程.谢谢,在线等

Dim A(3, 3) As Integer, I As Integer, J As Integer, K As Integer
I = 3: J = 1
A(I, J) = 1 "A(3,2)=1

只说一下A(3,2)=3吧.
第一次循环时I=3,J=2,K=2.
进入FOR第一次循环
运行
If I + 1 > 3 Or J + 1 > 3 Then
If J = 1 Then
I = I - 1
执行A(I, J) = K .也就是A(2,1)=2
第二次循环
此时I=2,J=1,K=2
运行
ElseIf J = 1 Or I = 1 Then

If A(I + 1, J + 1) = 0 Then
应因此时I=2,J=1.所以A(3,2)=0
执行I = I + 1: J = J + 1
执行A(I, J) = K 也就是A(3,2)=3
就是这样下面几次循环也是一样的.

A(3,1)=1
A(3,1)=2
A(3,2)=3
A(3,3)=4
A(2,2)=5
A(1,1)=6
A(1,2)=7
A(2,3)=8
A(1,3)=9

运算过程怎么告诉你啊
该不会要画程序流程图吧