順時針列印矩陣

2022-09-06 15:48:10 字數 2370 閱讀 7944

列印方法:

我們採用計數的方式進行列印,如第一次列印,第二次列印,第。。。。。。。

我們知道,第一次列印時,是列印其最」外圍「數字。

我首先列印行 1、2、3   然後列印列  6

再列印行9、8、7   再列印列     4

我們要注意的是什麼情況下才會列印,也就是說如:

因些要對要列印的條件進行嚴格限制。

左圖中,由於有只有兩行,那麼左邊那列就沒有了。

中間那圖,由於只有一列,那麼第二次的行和列就沒了。

右邊的圖只有一列,那麼就只能第一次列印行了。

因此我們需對剩下的行數和列數進行計數判斷:

如果行數和列數都大於2,那麼第一次的行,列,第二次的行列都打。

如果只有兩行多列,那麼不打列。

如果只有一行多列,那麼只打行。

。。。。。。。。

#ifndef

time_wise_print_matrix_h

#definetime_wise_print_matrix_h

#include

#define

colus

3void

printmatrixcore

(int

(*)[

colus

],int

rows

,int

);void

timewiseprintmatrix

(int

(*matrix

)[colus

],int

rows

)

intprintcount=0

;

while(2

*printcount

<

colus&&2

*printcount

<

rows

)}

void

printmatrixcore

(int

(*matrix

)[colus

],int

rows

,int

count

)

//print the second column

if(

rowend

-rowstart

>

1)

}

//print the second row

if(

rowend

-rowstart

>=

1)

}

//print the first col

if(

rowend

-rowstart

>1&&

colend

-colstart

>=

1)

}}

#endif

測試:

#include

"timewiseprintmatrix.h"

#includeintmain

(),,};

timewiseprintmatrix

(matrix,3

);}

輸出:

來自為知筆記(wiz)

順時針列印矩陣

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 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...