顺时针输出矩阵

该博客介绍了如何实现顺时针输出矩阵的算法。通过一圈一圈地遍历矩阵,处理内部可能出现的一点、一行或一列的情况,例如示例矩阵1到16,输出顺序为1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10。" 133603727,8753399,PCL库计算点云法向量的C++实现,"['计算机视觉', '点云', '算法', 'C++', 'PCL']
摘要由CSDN通过智能技术生成

比如矩阵是:

1    2     3    4

5    6     7    8

9    10  11  12

13  14  15  16

则输出顺序为 1 2  3  4 8 12 16 15 14 13 9 5 6 7 11 10。则思路就是一圈一圈的输出,比如上面矩阵中里面的一圈是6 7 11 10。

那么在实际编程时,要分情况注意按行和列输出,因为存在内部的"一圈"只是一个点或者一行或者一列的情况,具体见下面代码:

#include<iostream>
#include<string>
using namespace std;
//row为行,col为列
void printcircle(int **matrix,int row,int col,int begin){
	int endx = row-1-begin,endy = col-1-begin;
	for(int i =begin;i<=endy;i++)
			printf("%d ",matrix[begin][i]);
	if(begin<endx){
		for(int j =begin+1;j<=endx;j++)
			printf("%d ",matrix[j][endy]);
	}
	if(begin<endx && begin<endy){
		for(int i =endy-1;i>=begin;i--)
			printf("%d ",matrix[endx][i]);
	}
	if(begin<endx-1){
		for(int i = endx-1;i>=begin+1;i--)
			printf(&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值