顺时针打印矩阵

来源:互联网 发布:美式英语口语软件下载 编辑:程序博客网 时间:2024/06/05 07:12

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:

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.


思路,我们按层打印:

分别 输出  上  右  下 左  每一条边  第个角的作标已经写出。  直接输出 就好。(做这样的题目一定要 画图)


void out(int m,int n)
{
    int c=0;
    int beginX=0;
    int beginY=0;
    while(c<=m/2)
    {
       int i=beginX;
       int j=beginY;
       for(;j<n-1-c;j++)
           printf("%d ",a[i][j]);
       
       i=beginX;
       j=n-c-1;
       
       for(;i<m-1-c;i++)
        printf("%d ",a[i][j]);
        
        i=m-1-c;
        j=n-c-1;
        
        for(;j>beginY;j--)
       printf("%d ",a[i][j]);
      
      i=m-1-c;
      j=beginY;
      
        for(;i>beginX;i--)
      printf("%d ",a[i][j]);

        c++;
        beginX=c;
        beginY=c;
    }    
}



0 0