顺时针打印矩阵
输入一个矩阵,按照从外到里的顺序打印出每一个数字,
如果只有一行,那么就不用第二步了,
第二步的前提条件是终止行号大于起始行号。
第三步的前提条件是圈内至少要有两行两列,也就是说除了终止行号要大于起始行号外,还要求终止利好大于起始列号;
同理第四步的前提条件是要有三行两列,因此要求终止行号比起始行号至少大2,同时终止列号大于起始列号;
PrintMatrix.cpp:
#include <iostream>
#include <cstdio>
using namespace std;
void PrintMatrixInCircle(int ** numbers, int columns, int rows, int start);
void PrintNumber(int number);
void PrintMatrixClockwisely(int** numbers, int columns, int rows)
{
if(numbers == NULL || columns <= 0 || rows <= 0)
{
return ;
}
int start = 0;
while(columns > start * 2 && rows > start * 2)
{
PrintMatrixInCircle(numbers, columns, rows, start);
++start;
}
}
void PrintMatrixInCircle(int **numbers, int columns, int rows, int start)
{
int endX = columns - 1 - start;
int endY = rows - 1