列印方法:
我們採用計數的方式進行列印,如第一次列印,第二次列印,第。。。。。。。
我們知道,第一次列印時,是列印其最」外圍「數字。
我首先列印行 1、2、3 然後列印列 6
再列印行9、8、7 再列印列 4
我們要注意的是什麼情況下才會列印,也就是說如:
因些要對要列印的條件進行嚴格限制。
左圖中,由於有只有兩行,那麼左邊那列就沒有了。
中間那圖,由於只有一列,那麼第二次的行和列就沒了。
右邊的圖只有一列,那麼就只能第一次列印行了。
因此我們需對剩下的行數和列數進行計數判斷:
如果行數和列數都大於2,那麼第一次的行,列,第二次的行列都打。
如果只有兩行多列,那麼不打列。
如果只有一行多列,那麼只打行。
。。。。。。。。
測試:#ifndef
time_wise_print_matrix_h
#define
time_wise_print_matrix_h
#include
#define
colus
3
void
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"
#include
int
main(),,};
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...