我們有一個n * n矩陣,例如我們取n = 4,矩陣如下。一個遍歷n * n矩陣的c程序
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
我們必須穿越它的順序:
1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10
我怎樣才能做到這一點?
我們有一個n * n矩陣,例如我們取n = 4,矩陣如下。一個遍歷n * n矩陣的c程序
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
我們必須穿越它的順序:
1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10
我怎樣才能做到這一點?
在這種情況下,「遍歷」可能意味着訪問和打印每個條目。您想從頂部開始以順時針方向通過它。
下面是你需要做的的英語句子的風格描述:
如果你能找到一種方法,去子矩陣的左上角元素,讀出的條目從左到右從上到下排列,從右到上排列的條目讀取,從右到左排在最下面的條目,然後從左下到下排列,您有一個迭代。你可以拿走剩下的子矩陣並繼續直到你什麼也沒有。
另外的提示:
從單元M [X] [Y],
首先,嘗試找到一個合適的類型來建模矩陣,以便使用它。至少,它應該是一個類型,它允許你可以通過行/列號來訪問矩陣的元素,這樣就可以基本上在i
行和矩陣m
similiar的j
列訪問元件m(i, j)
假設你找到了這樣的類型,注意你被要求以螺旋(順時針)的方式迭代矩陣。所以這裏有一個重複的例子:除了內部的螺旋線稍小之外,每一輪螺旋都與其他螺旋相同,事實上,每一個螺旋都比前一個小一個數量。
功課? ...... – Prescott
是的我很困惑。 – Sunny