题解 | #蛇形矩阵#

蛇形矩阵

https://www.nowcoder.com/practice/f228a074c5274619b26be544962375e1

#include <stdio.h>

int main()
{
	int zu[100][100] = { 0 };
	int shu = 1;
	int n,i1,i2;
	int x = 0, y = 0;
	scanf("%d", &n);
	
	for (i1 = 1; i1 <= n; i1++)
	{
		if (1 == i1 % 2)
		{
			for (i2 = 0; i2 < i1; i2++)
			{
				zu[x][y] = shu++;
				if (i2 + 1 != i1)
				{
					x = x - 1;
					y = y + 1;
				}
			}
			y = y + 1;
		}//向上循环
		else
		{
			for (i2 = 0; i2 < i1; i2++)
			{
				zu[x][y] = shu++;
				if (i2 + 1 != i1)
				{
					x = x+1;
					y = y-1;
				}
			}
			x = x + 1;
		}//向下循环
	}//上半部分

	if (1 == n % 2)
{
	x = x + 1;
	y = y - 1;
}
else
{
	x = x - 1;
	y = y + 1;
}//下半部分开始
	for (i1 =n-1; i1>0; i1--)
	{
		if (1 == i1 % 2)
		{
			for (i2 = 0; i2 < i1; i2++)
			{
				zu[x][y] = shu++;
				if (i2 + 1 != i1)
				{
					x = x - 1;
					y = y + 1;
				}
			}
			x = x + 1;
		}//向上循环
		else
		{
			for (i2 = 0; i2 < i1; i2++)
			{
				zu[x][y] = shu++;
				if (i2 + 1 != i1)
				{
					x = x + 1;
					y = y - 1;
				}
			}
			y = y + 1;
		}//向下循环
	}//上半部分

	for (i1 = 0; i1 < n;i1++)
	{
		for (i2 = 0; i2 < n;i2++)
		{
			printf("%d ", zu[i1][i2]);
		}
		printf("\n");
	}

	return 0;
}

全部评论

相关推荐

野猪不是猪🐗:现在的环境就是这样,供远大于求。 以前卡学历,现在最高学历不够卡了,还要卡第一学历。 还是不够筛,于是还要求得有实习、不能有gap等等... 可能这个岗位总共就一个hc,筛到最后还是有十几个人满足这些要求。他们都非常优秀,各方面都很棒。 那没办法了,看那个顺眼选哪个呗。 很残酷,也很现实
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务