题解 | #回型矩阵#

回型矩阵

https://www.nowcoder.com/practice/36d5dfddc22c4f5b88a5b2a9de7db343

#include <stdio.h>
int main()
{
	//输入一个数
	int n = 0;
	scanf("%d", &n);
	int arr[20][20] = { 0 };
	int a = 1;
	int i = 0;
	int j = 0;
	int col = 0;
	int row = 0;
	int l = 1;
	int h = 1;
	
	while (1)
	{
		//横着的
		if (n - l == 0)//n为奇数时
		{
			arr[i][j] = a;
			if (a == n * n)
			{
				goto end;
			}
		}
		for (j = row;j < n - l+row;j++)
		{
			arr[i][j] = a;
			if (a == n * n)
			{
				goto end;
			}
			a++;
		}
		//竖着的
		for (i = col;i < n - h+col;i++)
		{
			arr[i][j] = a;
			if (a == n * n)
			{
				goto end;
			}
			a++;
		}
		//横着的

		while (j > row)
		{
			arr[i][j] = a;
			if (a == n * n)
			{
				goto end;
			}
			a++;
			j--;
		}
		//竖着的
		while (i > col)
		{
			arr[i][j] = a;
			if (a == n * n)
			{
				goto end;
			}
			a++;
			i--;
		}
		col++;
		row++;
		h += 2;
		l += 2;
		i = col;
		j = row;
	}
end:
	for (i = 0;i < n;i++)
	{
		for (j = 0;j < n;j++)
		{
			printf("%d ", arr[i][j]);
		}
		putchar('\n');
	}
	return 0;
}

全部评论

相关推荐

点赞 评论 收藏
分享
03-25 16:22
南华大学 Java
不敢追175女神:你是打了上千个招呼吧?😂
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务