顺时针蛇形矩阵

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

  结果:

posted @ 2016-09-02 09:31  近水樓台  阅读(504)  评论(0编辑  收藏  举报
Fork me on GitHub
回到顶部