输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
例如:如果输入如下矩阵: 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。
#include <iostream>
#include <algorithm>
using namespace std;
void print(int array[][5], int M, int N)
{
int minEle = min(M, N);
int l = minEle - minEle/ 2;
int decrement = 0;
while (decrement < l)
{
if (decrement == N-decrement-1)
{
for (int j = decrement; j <= M-decrement-1; j++)
{
cout<<array[j][decrement]<<" ";
}
break;
}
else if (decrement == M-decrement-1)
{
for (int i = decrement; i <= N-decrement-1; i++)
{
cout<<array[decrement][i]<<" ";
}
break;
}
else
{
int i = decrement, j;
for (j = decrement; j <= N-decrement-1; j++)
{
cout<<array[i][j]<<" ";
}
j--;
i++;
for (; i <= M-decrement-1;i++)
{
cout<<array[i][j]<<" ";
}
i--;
j--;
for (; j >= decrement; j--)
{
cout<<array[i][j]<<" ";
}
i--;
j++;
for (; i > decrement; i--)
{
cout<<array[i][j]<<" ";
}
cout<<endl;
decrement++;
}
}
}
int main()
{
int array[3][5]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
print(array,3,5);
}