順時針列印方陣

2021-06-09 00:04:27 字數 956 閱讀 5394

1. 描述

給定一方陣,順時針列印方陣的值,如方陣:

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

2. 思路

從外到內每一次列印有4條邊組成的方框,如

(1)第一條邊1,2,3

(2)第二條邊4,8,12

(3)第三條邊16,15,14

(4)第四條邊13,9,5

**如下:

void printmatrixclockwise(int n, int matrix[n]) //n行n列,矩陣matrix下標從0開始

if (n & 1) //如果n是奇數的時候,最中間的那個元素在上面的迴圈中列印不出來

printf("%d\n", matrix[n >> 1][n >> 1]);

}

測試如下:

#include void printmatrixclockwise(int n, int matrx[n]);

int main(void)

; int matrix2[4][4] = ;

int n = 5, n2 = 4;

printf("matrix:\n");

printmatrixclockwise(n, matrix);

printf("matrix2:\n");

printmatrixclockwise(n2, matrix2);

return 0;

}

輸出:

當矩陣的行數與列數不相等是也是類似的。

對方陣順時針旋轉

對乙個方陣轉置,就是把原來的行號變列號,原來的列號變行號 例如,如下的方陣 轉置後變為 1 2 3 4 1 5 9 13 5 6 7 8 2 6 10 14 9 10 11 12 3 7 11 15 13 14 15 16 4 8 12 16 但,如果是對該方陣順時針旋轉 不是轉置 卻是如下結果 1...

順時針列印矩陣

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