顺时针蛇形矩阵

Posted 近水樓台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了顺时针蛇形矩阵相关的知识,希望对你有一定的参考价值。

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

  结果:

以上是关于顺时针蛇形矩阵的主要内容,如果未能解决你的问题,请参考以下文章

《程序员代码面试指南》第八章 数组和矩阵问题 将正方形矩阵顺时针转动90

P5731 深基5.习6蛇形方阵

剑指offer面试题 29. 顺时针打印矩阵

剑指offer面试题 29. 顺时针打印矩阵

剑指offer--29顺时针打印矩阵

顺时针打印矩阵