首页 > 代码库 > 顺时针打印矩阵

顺时针打印矩阵

思想:先顺时针打印一圈,再打印剩下的矩阵,直到最后的矩阵的行或列为0为止;

#include "iostream"using namespace std;void main(){    int a[3][4]={{1,2,3,4},{8,7,6,5},{1,2,3,4}};    int m=3,n=4;        int fp=0,fq=0;    int i;        int temp_m,temp_n;    bool isExe;    while(m&&n){        temp_m=m;        temp_n=n;        isExe=false;        for(i=fq;i<fq+n;i++){            cout<<a[fp][i]<<" ";            if(!isExe)                isExe=true;        }        if(isExe)temp_m--;        isExe=false;        for(i=fp+1;i<fp+m;i++){            cout<<a[i][fq+n-1]<<" ";            if(!isExe)                isExe=true;        }        if(isExe)temp_n--;        isExe=false;        if(m>1)        for(i=fq+n-2;i>=fq;i--){            cout<<a[fp+m-1][i]<<" ";            if(!isExe)                isExe=true;        }        if(isExe)temp_m--;        if(n>1)        isExe=false;        for(i=fp+m-2;i>fp;i--){            cout<<a[i][fq]<<" ";            if(!isExe)                isExe=true;        }        if(isExe)temp_n--;        fp++;        fq++;        m=temp_m;        n=temp_n;        //cout<<":"<<m<<"__"<<n<<":";    }}

 

顺时针打印矩阵