#include<stdio.h>
int main()
{int x=0,y=0,n,i,a[22][22]={0},c
scanf("%d",&n)
c=a[x][y]=1
while(c<n*n)
{while(y<n-1&&!a[x][y+1])a[x][++y]=++c //向右
while(x<n-1&&!a[x+1][y])a[++x][y]=++c //向下
while(y>0&&!a[x][y-1])a[x][--y]=++c //向左
while(x>0&&!a[x-1][y])a[--x][y]=++c //向上
}
for(x=0x<nx++)
{for(y=0y<ny++)
printf("%4d",a[x][y])
printf("\n")
}
return 0
}
#include <stdio.h>#include<stdlib.h>void main() { inti,j,n,number=1,a[30][30]printf("Please input a number N:")
scanf("%d",&n)for(i=0i<=n/2i++) //控制总共有几个顺时针螺旋 {
for(j=ij<n-ij++) //向右(改变纵坐标,保持横坐标不变) a[i][j]=number++
for(j=i+1j<n-ij++) //向下(改变横坐标,保持纵坐标不变) a[j][n-i-1]=number++
for(j=n-i-2j>ij--) //向左(改变纵坐标,保持横坐标不变) a[n-i-1][j]=number++
for(j=n-i-1j>ij--) //向上(改变横坐标,保持纵坐标不变) a[j][i]=number++}
for(i=0i<ni++) { for(j=0j<nj++) printf("%d\t",a[i][j])
printf("\n")} }