##顺时螺旋方阵
所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。
输入格式:
输入在一行中给出一个正整数N(<10)。
输出格式:
输出N×N的螺旋方阵。每行N个数字,每个数字占3位。
输入样例:
输出样例:
#include<stdio.h>
int main (){
int n, _n, i, j, c=1, up, right, down, left;
int a[10][10];
scanf("%d",&n);
up=0; right=n-1; down=n-1; left=0; //四个边界
_n=2*n-1; //第一行为n个,按照顺时针其余每两串就减1
for(j=1;j<=n;j++){
for(i=left;i<=right;i++)
{
a[up][i]=c;
c++; //c记录总值
}up=up+1; //上边界减1
for(i=up;i<=down;i++)
{
a[i][right]=c;
c++;
}right=right-1; //右边界减1
for(i=right;i>=left;i--)
{
a[down][i]=c;
c++;
}down=down-1; //下边界减1
for(i=down;i>=up;i--)
{
a[i][left]=c;
c++;
}left=left+1; //左边界减1
}
for(i=0;i<n;i++)
{ //输出
for(j=0;j<n;j++)
{
printf("%3d",a[i][j]);
}printf("\n");
}
return 0;
}
代码人 ~ 代码魂 ~ 此生钟爱代码神 ~ Big_Kiss~