【算法】螺旋方阵 上交OJ1021

输入格式:

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

输出格式:

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

输入样例:

5

 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
时间限制
400 ms
内存限制
32000 kB
代码长度限制
8000 B
判题程序
Standard
#include <stdio.h>
main()
{
    int c=1,x=0, y=0,n, a[10][10]={0};
    scanf("%d", &n);
    a[x][y] = 1;
    while(n*n!=c)
    {
        while(y+1<n && !a[x][y+1] )    //从左到右
             a[x][++y] = ++c;      
        while(x+1<n  && !a[x+1][y])  // 从上到下
             a[++x][y] = ++c;
        while(y-1>=0  && !a[x][y-1])   //从右到左
             a[x][--y] = ++c;
        while(x-1>=0 && !a[x-1][y])   //从下到上
             a[--x][y] = ++c;
    }
    for(x=0;x<n;x++)
    { 
       for(y=0;y<n;y++)
           {
               printf("%3d", a[x][y]);
        }
           printf("\n");
    }
 } 

 

posted on 2019-03-11 15:33  时间静止之湖  阅读(195)  评论(0编辑  收藏  举报

导航