- 帖子
- 41
- 主題
- 0
- 精華
- 0
- 積分
- 79
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- 2010
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2014-4-1
- 最後登錄
- 2016-2-17
|
回復 8# 准提部林
沒有寫得很好,一開始就只考慮到對稱性
但是還是有符合題目需求,貼上來讓大家指導順便修正哪裡還有問題- Sub testarrX2() '這裡執行
- Cells.Clear
- Dim n&: n = 15 '只能奇數
- Cells(11, 8).Select '=>足夠填充的位置
- arrX2 n, n, 0 '奇數方陣 ,固定值 ,(0=>符號表式,大於0數字=>序列表示)
- End Sub
- Sub arrX2(numX&, n&, k&)
- Dim cx&, cy&, arr, arr2, arr3
- arr = Array(0, 1, 0, -1, 0, 1)
- arr2 = Array("┐", "┘", "└", "┌", "●")
- arr3 = Array("", "↓", "←", "↑", "→")
- If numX <> 1 Then
- arrX2 numX - 2, n, k
- p = (numX - 1) / 2 '(增量)位移量
- For i = 1 To 4
- For j = 0 To numX - 2
- cx = ActiveCell.Column + p * arr(i) + arr(i + 1) * (j - p + 1)
- cy = ActiveCell.Row + p * arr(i - 1) + arr(i) * (j - p + 1)
- If k = 0 Then
- If i = 1 And j = 0 Then
- Cells(cy, cx) = arr2(0)
- ElseIf i < 4 And j = numX - 2 Then
- Cells(cy, cx) = arr2(i)
- ElseIf j = numX - 2 And numX = n Then
- Cells(cy, cx) = arr2(i)
- Else
- Cells(cy, cx) = arr3(i)
- End If
- Else
- k = k + 1
- Cells(cy, cx) = k
- End If
- Next j
- Next i
- Else
- ActiveCell = IIf(k > 0, k, "◎")
- End If
- End Sub
複製代碼 |
-
1
評分人數
-
-
准提部林:
不要客氣,比我寫的好太多~~金錢 + 5
|