zoukankan      html  css  js  c++  java
  • 螺旋打印数字矩阵

    /*从键盘输入一个整数(1~20)
    则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。例如:
    输入数字2,则程序输出:
    1 2
    4 3
    输入数字3,则程序输出:
    1 2 3
    8 9 4
    7 6 5
    输入数字4, 则程序输出:
    1  2   3   4
    12  13  14  5
    11  16  15  6
    10   9  8   7
    */
    
    #include<stdio.h>
    
    
    void main()
    
    {
        int n,i,j ,t, k=1;  // k,k=1时,k指向右, k=2时,k指向下,k=3时,k指向左,k=4时,k指向上,
        int nn ;
        int str[22][22] = {0};
    
    
        printf("输入矩阵的大小: ");
        scanf("%d",&n);
        
        for(i=1;i<=n;i++)
        {
            for(j =1;j<=n;j++)
            {
                str[i][j] = -1;
            }
        }
        
        i=1;
        j=1;
        nn = n*n;
        for(t= 1;t<=nn;t++)
        {
            if(k==1)
            {
                if(str[i][j]==-1)
                {
                    str[i][j++] = t;
                }
                else
                {
                    k=2;
                    ++i;
                    --j;
                }
            }
    
            if(k==2)
            {
                if(str[i][j]==-1)
                {
                    str[i++][j] = t;
                }
                else
                {
                    k=3;
                    --i;
                    --j;
                }
            }
            if(k==3)
            {
                if(str[i][j]==-1)
                {
                    str[i][j--]=t;
                }
                else
                {
                    k=4;
                    --i;
                    ++j;
                }
            }
            if(k==4)
            {
                if(str[i][j]==-1)
                {
                    str[i--][j]=t;
                }
                else
                {
                    k=1;
                    ++i;
                    ++j;
                    --t;
                }
            }
        }
    
        for(i = 1;i<=n;i++)
        {
            for(j =1;j<=n;j++)
            {
                printf("%-6d",str[i][j]);
            }
            printf("\n");
        }
        getch();
    }
  • 相关阅读:
    ES6——Promise
    ES6——generator-yield
    ES6——generator
    JQuery——关于CDN(内容分发网络)
    关于JSON使用要注意的地方
    第7课
    第6课
    第5课
    第4课
    第3课
  • 原文地址:https://www.cnblogs.com/zychengzhiit1/p/2610996.html
Copyright © 2011-2022 走看看