逆时针的....
#include<stdio.h>
int main ()
{
int p=1,j=0,m=0,i=0,x,k,n,a[100][100],z;
scanf("%d",&n);
k=n;
for(z=(n+1)/2;z>0,k>0;z--,k=k-2)
{
for(x=0;x<k;x++)
{
a[i+m][j+m]=p;
p++;
i++;
}
i=i-1;
for(x=1;x<k;x++)
{
j++;
a[i+m][j+m]=p;
p++;
}
for(x=1;x<k;x++)
{
i--;
a[i+m][j+m]=p;
p++;
}
for(x=2;x<k;x++)
{
j--;
a[i+m][j+m]=p;
p++;
}
m++;
i=0;
j=0;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("|%d|
",a[i][j]);
}
printf("\n");
}
return 0;
}