zoukankan      html  css  js  c++  java
  • 螺旋队列问题之二

    如矩阵

        1    2    3    4    5
       16   17   18   19    6
       15   24   25   20    7
       14   23   22   21    8
       13   12   11   10    9

      找出规律,并打印出一个N*N的矩阵;规律就是从首坐标开始顺时针增大,所以

        1.需要一个变量m来递增记录进度。

        2.注意各个转折点。

    具体代码实现如下:

    #include <stdio.h>
    #define N 5
    int a[N][N]={0};
    
    void fun(int n)
    {
            int i,j;
            int m=1;
            for(i=0;i<n/2;i++)
            {
                    for(j=i;j<n-i;j++)         //上边的一行
                    {
                            a[i][j]=m++;
                    }
                    for(j=i+1;j<n-i;j++)       //右边的一列
                    {
                            a[j][n-i-1]=m++;
                    }
                    for(j=n-i-2;j>i;j--)       //下边的一行
                    {
                            a[n-i-1][j]=m++;
                    }
                    for(j=n-i-1;j>i;j--)       //左边的一列
                    {
                            a[j][i]=m++;
                    }
            }
            if(n%2==1)
                    a[n/2][n/2]=m;
    }
    
    
    int main(void)
    {
            int i,j;
            fun(N);
            for(i=0;i<N;i++)
            {
                    for(j=0;j<N;j++)
                    {
                            printf("%5d",a[i][j]);
                    }
                    printf("
    ");
            }
            return 0;
    }

    别忘记考虑到n为奇数的情况下,需要加上最后的判断

    结果如下:

    [root@master tmp]# ./2
        1    2    3    4    5    6    7
       24   25   26   27   28   29    8
       23   40   41   42   43   30    9
       22   39   48   49   44   31   10
       21   38   47   46   45   32   11
       20   37   36   35   34   33   12
       19   18   17   16   15   14   13

     程序猿必读

  • 相关阅读:
    成功引爆
    pecompact2脱壳手记
    象棋
    今天小雨
    出错了,怎么办?
    设计模式——Adapter模式
    表设计中应注意的2点
    设计模式——Singleton模式
    设计模式——Facade模式
    设计模式——Strategy模式
  • 原文地址:https://www.cnblogs.com/longzhongren/p/4380479.html
Copyright © 2011-2022 走看看