トピック20を時計回りプリントマトリックス

////////////////////////////////////////////////// ///////////////////////////////////
// 2.トピック20時計印刷行列
//入力行列、各番号をプリントアウトするために外側から内側へ時計回りの順番に応じて!

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 ] = {{ 1234 }、{5678 }、{ 9101112 }、{ 13141516 }}。

    PrintMatirxClockwisely(aiArray、44 ); 

    裁判所未満 << " \ N \ N --------------- PrintMatirxTestFunc終了--------------> " << てendl; 

}

おすすめ

転載: www.cnblogs.com/yzdai/p/11258718.html