////////////////////////////////////////////////// ///////////////////////////////////
// 2.トピック20時計印刷行列
//入力行列、各番号をプリントアウトするために外側から内側へ時計回りの順番に応じて!!!
ボイド PrintMatirxInCircle(INT(* ppArray)[ 4。、】INT iRows、INT iColumns、INT ISTART) { int型 iEndX iColumns = - 1 - ISTART; INT iEndY iRows = - 1 - ISTART; // 1プリント左から右へライン 用(intです ;私は<= iEndX I ++はI = ISTART ) { のprintf(" %の2D " 、ppArray [ISTART] [I]); } // 2が逆さまに印刷された IF(ISTART < iEndY) { 用(int型 I = ISTART + 1 ; I <iEndY; I ++ ) { のprintf(" %の2D " 、ppArray [I]が[iEndX]); } } // 左印刷右から3列 IF(ISTART <&& iEndX ISTART < iEndY) { ため(INT I = iEndX - 1。 ; I> = ISTART; i-- ) { のprintf(" %の2D " 、ppArray [iEndY] [I]); } } // 底から4.トップにライン印刷 IF(ISTART <iEndX && ISTART <iEndYを-1 ) { ため(int型 I = iEndY - 1 ; I> = ISTART + 1 ; i-- ) { のprintf(" %2D " 、ppArray [I] [ISTART])。 } } } ボイド PrintMatirxClockwisely(INT(* ppArray)[ 4 ]、INT iRows、INT iColumns) { 場合(NULL == ppArray || iRows <= 0 || iColumns <= 0 ) { 返します。 } INT ISTART =0 ; 一方、(iColumns> ISTART * 2 && iRows> ISTART * 2 ) { // 打印一圈数据 PrintMatirxInCircle(ppArray、iRows、iColumns、ISTART)。 ISTART ++ ; } } ボイドPrintMatirxTestFunc() { COUT << " \ n \ n --------------- PrintMatirxTestFuncスタート--------------> " << endl; INT aiArray [ 4 ] [ 4 ] = {{ 1、2、3、4 }、{5、6、7、8 }、{ 9、10、11、12 }、{ 13、14、15、16 }}。 PrintMatirxClockwisely(aiArray、4、4 ); 裁判所未満 << " \ N \ N --------------- PrintMatirxTestFunc終了--------------> " << てendl; }