void SpiralMatrix(int **a,int n)
{
int i,j,k,cnt=1; // write your code here
for(k=0;k<n/2;k++)
{
for(i=k;i<n-k;i++)
a[i][k]=cnt++;//该层次的第一列
for(i=k+1;i<n-k;i++)
a[n-1-k][i]=cnt++;//该层次的最后一行
for(i=n-k-2;i>=k;i--)
a[i][n-1-k]=cnt++;//该层次的最后一列
for(i=n-2-k;i>k;i--)
a[k][i]=cnt++;//该层次的第一列
}
if(n%2!=0)
a[n/2][n/2]=n*n;//如果层次数为奇数,则矩阵中央还有一个数未填充,若为偶,前面已经囊括
}