1090: 螺旋方阵
Time Limit: 1 Sec Memory Limit: 128 MBDescription
输出一个形如样例如的螺旋方阵
Input
一个整数n(0<n<10)
Output
一个n行方阵,每行n个数,每个数场宽为3
Sample Input
5
Sample Output
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
HINT
Source
#include<stdio.h>
main()
{
int n,i,j,k,l=0,m=1;
scanf("%d",&n);
int a[100][100]={0};
if(n%2) //判断圈数,并把圈数值给k
{k=n/2+1;}
else
{k=n/2;}
while(l<k)
{
for(i=l;i<n-l;i++)
a[l][i]=m++;
for(i=1+l;i<n-l;i++)
a[i][n-1-l]=m++;
for(i=n-2-l;i>=l;i--)
a[n-1-l][i]=m++;
for(i=n-2-l;i>=1+l;i--)
a[i][l]=m++;
l++;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{printf("%3d",a[i][j]);}
printf("\n");
}
}