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