顺时针打印矩阵
来源:互联网 发布:php图书管理系统下载 编辑:程序博客网 时间:2024/06/04 18:45
描述:给定一个矩阵,按照从外到里的顺序打印每一个
数字
分析
1、找到每个圈打印开始的地方(发现这个数的下标*2只要小于总的行和列就行)
2、每找到一个就循环打印
注意:
边界条件
#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;void PrintMatexInCycle(int (*arr)[2], int row, int col, int start){ int endX = col - 1 - start;//行的结束位置 int endY = row - 1 - start;//列的结束位置 //从左到右打印 for (int i = start; i <= endX; i++) { cout << arr[start][i] << " "; } //从上到下打印 if (start < endY) { for (int i = start+1; i <= endY; i++) { cout << arr[i][endX] << " "; } } //从右向左打印 if (start < endX && start < endY) { for (int i = endX - 1; i >= start; --i) { cout << arr[endY][i]; } } //从下到上打印 if (start < endX && start < endY - 1) { for (int i = endY - 1; i>=start + 1; --i) { cout << arr[i][start] << " "; } }}void PrintMatrixClowkwisely(int(*arr)[2],int row,int col){ if (arr == NULL || row <= 0 || col <= 0) { return; } int start = 0; //找到循环打印的结束条件,每找到一个开始点打印以这个点为开始的一圈 while (start * 2 < row && start * 2 <= col) { PrintMatexInCycle(arr, row, col, start);//调用此函数一次打印一圈 ++start; }}int main(){ int arr[][2]{{ 1, 2 }, { 3, 4 }}; PrintMatrixClowkwisely(arr, 2, 2); return 0;}
0 0
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 矩阵顺时针打印
- 顺时针打印矩阵
- 顺时针打印矩阵[算法]
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- java之semapore详解
- MYSQL之常用函数
- 化简-HDU-5734-Acperience
- 开发调试必备Fiddler
- java中的设计模式学习
- 顺时针打印矩阵
- 7.11 打印以下图案
- Head First Java笔记(七)
- android/widget/EditText : Unsupported major.minor version 52.0
- boost执行http的GET请求
- 几种数据库的分页
- windows安装服务
- Data truncation: Truncated incorrect DOUBLE value
- Linux入门(二)-常用命令