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

输入格式:

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

输出格式:

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


#include <stdio.h>
main()
{
	int c=1,x, y,i, j, n, a[100][100]={0};
	scanf("%d", &n);
	x = 0, y = 0;
	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");
         }
 } 

猜你喜欢

转载自blog.csdn.net/xyt02201608/article/details/80218333