顺时针打印矩阵
2016-07-21 20:57
423 查看
描述:给定一个矩阵,按照从外到里的顺序打印每一个
数字
分析
1、找到每个圈打印开始的地方(发现这个数的下标*2只要小于总的行和列就行)
2、每找到一个就循环打印
注意:
边界条件
数字
分析
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; }
相关文章推荐
- 顺时针打印矩阵
- 【剑指offer】顺时针打印矩阵
- 面试题20:顺时针打印矩阵
- 顺时针打印矩阵(旋转矩阵)
- 菜鸟系列之C/C++经典试题(十一)
- *【九度OJ1362】|【剑指offer20】顺时针打印矩阵
- 剑指offer面试题:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字
- 顺时针打印矩阵 按圈打印 java
- 剑指offer——顺时针打印矩阵
- 剑指offer:顺时针打印矩阵(java)
- 顺时针打印矩阵
- java面试题:顺时针打印矩阵
- 《剑指offer》刷题笔记(画图让抽象形象化):顺时针打印矩阵
- 顺时针打印矩阵
- 剑指offer面试题[20]-顺时针打印矩阵
- 打印蛇形矩阵
- 顺时针打印矩阵java实现
- 顺时针打印矩阵
- 剑指offer:(20)画图让抽象问题更具体:顺时针打印矩阵
- 剑指Offer:顺时针打印矩阵