#include <stdio.h>
int main()
{
int i=0,j=0;
int m[10][10]={0},s=1;
int a,b,c,d,parity,k,n,center;
printf("输入蛇形矩阵的n:");
scanf("%d",&n);
parity=n%2;//检测n的奇偶性;
center=n/2;
for(k=(n+1)/2;k>0;k--)
{
for(a=0;a<2*k-1-parity;a++)
{
m[i][j]=s;
j++;
s++;
}
for(b=0;b<2*k-1-parity;b++)
{
m[i][j]=s;
i++;
s++;
}
for(c=0;c<2*k-1-parity;c++)
{
m[i][j]=s;
j--;
s++;
}
for(d=0;d<2*k-1-parity;d++)
{
m[i][j]=s;
i--;
s++;
}
i++;
j++;
if(parity!=0&&i==center&&j==center)
{
m[i][j]=s;
break;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%3d",m[i][j] );
}
printf("\n");
}
}
}
结果: