之字打印矩阵

本题之字形输出矩阵,根据方向可分为左下到右上和从右上到左下两个方向输出,实际上可以看成斜向输出,具体方向作为bool变量更改就可以。考虑设置A,B两个点作为辅助,最开始A、B两点都在左上角位置(0,0)(0,0)位置。
(1)AB之间的连线就是需要输出的数字,每轮输出后A向右移,B向下移;
(2)使用一个bool变量表示打印的方向,每轮打印过后取逆;
(3)当A移到最右端则下移,B移到最下端则右移,直到A移

void Rotationmatrix(int arr[][height], int a, int b, int c, int d)
{
	int times = d - b;
	for (int i = 0; i < times; i++)
	{
		int temp = arr[a][b+i];
		arr[a][b + i] = arr[c - i][b];
		arr[c-i][b] = arr[c][d - i];
		arr[c][d - i] = arr[a + i][d];
		arr[a + i][d] = temp;
	}
}
while (aR != height)//当左上角的点没有移动到底端
{
	print(arr, dir, aR, aC, bR, bC);
	if (aC < width - 1)
	{
		aC++;//列增加  水平右移
	}
	else
	{
		aR++;//行号增加向下移动
	}
	if (bR < height - 1)
	{
		bR++;//B点向下移动
	}
	else
	{
		bC++;//B点向右移动
	}
	dir = !dir;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值