题意:
输入一个整数N;得到一个旋转方阵;
---
5
---
1 16 15 14 13
2 17 24 23 12
3 18 25 22 11
4 19 20 21 10
5 6 7 8 9
----
提示:
这个题和Snake那个题的思路很像,在一个方阵里考虑,根据方向写出四个while循环。
----
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int a[105][105]={0};
int x=1,y=1,z=1,i=1,j,n;
scanf("%d",&n);
while(i<=pow(n,2))
{
while(x<=n && a[x][y]==0)
{
a[x++][y]=z++;
i++;
}
x--;y++;
while(y<=n && a[x][y]==0)
{
a[x][y++]=z++;
i++;
}
x--;y--;
while(x>=1 && a[x][y]==0)
{
a[x--][y]=z++;
i++;
}
x++;y--;
while(y>=1 && a[x][y]==0)
{
a[x][y--]=z++;
i++;
}
x++;y++;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("%-4d",a[i][j]);
}
printf("\n");
}
return 0;
}