20 順時針列印矩陣

2021-07-04 11:20:49 字數 982 閱讀 8123

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字,例如,如果輸入如下矩陣:

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.

列印第一圈的左上角座標是(0,0),第二圈的的左上角座標是(1,1),所以,每一圈的左上角座標選定為(start,start). 列印圈的迴圈繼續條件是columns>startx*2 && rows>starty*2.

列印一圈分成四步:

1. 從左到右列印一行:總是需要

2. 從上到下列印一列:至少有2行

3. 從右到左列印一行:至少有2行2列

4. 從下到上列印一列:至少有3行2列

注意:每一步列印的前提條件!

void printmatrixclockwisely(int** numbers, int columns, int rows)

}void printmatrixincircle(int** numbers, int columns, int rows, int start)

//從上到下列印一列:至少有兩行

if (start < endy)

}//從右到左列印一行:至少有兩行兩列

if (start < endy && start < endx)

}//從下到上列印一列:至少有三行兩列

if (start < endy - 1 && start < endx)

}}void printnumber(int number)

int** numbers = new

int*[rows];

for(int i = 0; i < rows; ++i)

}

20 順時針列印矩陣

題目描述 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數 字,例如,如果輸入如下 4x4 矩陣 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.思路 按層模擬 終...

順時針列印矩陣

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 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,然而實際去做的時候會發現,如果結構劃分的不好,會出現很多的迴圈,而且包括對各種...