順時針列印矩陣

2021-07-27 06:46:23 字數 647 閱讀 2526

通常當我們遇到乙個複雜的問題的時候,我們可以用圖形幫助我們思考。由於我們是以從外圈到內圈的順序依次列印,我們在矩陣中標註一圈作為我們分析的目標。在下圖中,我們設矩陣的寬度為columns,而其高度為rows。我們我們選取左上角座標為(startx, starty)。我們可以想象有乙個迴圈,在每一次迴圈裡我們從(startx, starty)出發按照順時針列印數字。

接著我們分析這個迴圈結束的條件。對乙個5×5的矩陣而言,最後一圈只有乙個數字,對應的座標為(2, 2)。我們發現5 > 2 * 2。對乙個6×6的矩陣而言,最後一圈有四個數字,對應的座標仍然為(2, 2)。我們發現6 > 2 * 2依然成立。於是我們可以得出,讓迴圈繼續的條件是columns > startx * 2 && rows > starty * 2。有了這些分析,我們就可以寫出如下的**:

#include 

using

namespace

std;

void print(int num[4], int rows, int cols, int start)

}int main()

,,,};

printmatrix(in, 4, 4);

return

0;}

順時針列印矩陣

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 1 2 3 45 6 7 89 10 11 1213 14 15 16則依次列印出數字 1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10。這個題目 寫的並不好感覺,好多if看著就煩,就是...

順時針列印矩陣

題目 給定乙個矩陣,從外向內順時針列印矩陣中的每乙個數字。例如 給定矩陣 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 輸出應該為 分析 這道題的意思非常直觀,給人的感覺也是so easy,然而實際去做的時候會發現,如果結構劃分的不好,會出現很多的迴圈,而且包括對各種...

順時針列印矩陣

from 題目 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 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。網上聽說聽到包括autod...