#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");
}
}
}
结果:

本文介绍了一种使用C语言实现的蛇形矩阵生成算法。通过输入矩阵的大小n,算法将按照蛇形路径填充矩阵,并打印出最终结果。该算法考虑了矩阵大小的奇偶性,确保了正确填充。
1378

被折叠的 条评论
为什么被折叠?



