zoukankan      html  css  js  c++  java
  • 螺旋方阵

    所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。

    输入格式:

    输入在一行中给出一个正整数N(<10)。

    输出格式:

    输出N×N的螺旋方阵。每行N个数字,每个数字占3位。

    思路:

    1. 按→方向填充,当数组元素值不是-1时,切换方向到 ↓

    2. 继续沿 ↓ 填充,当数组元素值不是-1时,切换方向为←

    3. 继续沿←填充,当数组元素值不是-1时,切换方向为 ↑

    4. 继续沿 ↑ 填充,当数组元素值不是-1时,切换方向为→(回到第1步)

    #include<stdio.h>
    #include<math.h>
    #include<stdlib.h>
    #include<string.h>
    int main()
    {
        int n, a[15][15]/*={0}*/;
        memset(a, 0, sizeof(a));//a内所有元素变为0
        scanf("%d", &n);
        int i = 1, j = 1, k = 1;
        while(k <= n * n)
        {
            while(j <= n)
            {
                if(!a[i][j])
                    a[i][j++] = k++;
                else break;
            }
            j--;
            i++;
            while(i <= n)
            {
                if(!a[i][j])
                    a[i++][j] = k++;
                else break;
            }
            i--;
            j--;
            while(j > 0)
            {
                if(!a[i][j])
                    a[i][j--] = k++;
                else break;
            }
            j++;
            i--;
            while(i > 0)
            {
                if(!a[i][j])
                    a[i--][j] = k++;
                else break;
            }
            i++;
            j++;
        }
        for(i = 1; i <= n; i++)
        {
            for(j = 1; j < n; j++)
                printf("%3d", a[i][j]);
            printf("%3d
    ", a[i][j]);
        }
        return 0;
    }
  • 相关阅读:
    C#练习3
    C#练习2
    C#环境变量配置及csc命令详解(转自cy88310)
    建站流程(转)
    C#练习
    程序竞赛1
    排序算法
    输出有向图的邻接矩阵
    C#高效分页代码(不用存储过程)
    存储过程详解
  • 原文地址:https://www.cnblogs.com/mayouyou/p/8650171.html
Copyright © 2011-2022 走看看