void PrintCircle(int(*array)[4], int row, int col, int start)
{
int endCol = col - 1 - start;
int endRow = row - 1 - start;
for (int i = start; i <= endCol; ++i)//从左->右
{
printf("%d ", array[start][i]);
}
if (start < endRow)//从上->下
{
for (int i = start + 1; i <= endRow; ++i)
{
printf("%d ", array[i][endCol]);
}
}
if (start < endRow && start < endCol)//从右->左
{
for (int i = endCol - 1; i >= start; --i)
{
printf("%d ", array[endRow][i]);
}
}
if (start < endRow - 1 && start < endCol)//从下->上
{
for (int i = endRow - 1; i>start; --i)
{
printf("%d ", array[i][start]);
}
}
}
void PrintMatrix(int(*array)[4],int row,int col)
{
if (NULL == array || row <= 0 || col <= 0)
return;
int start = 0;
while (col>start*2 && row>start*2)//控制打印的圈数
{
PrintCircle(array, row, col, start);
++start;
}
}
int main()
{
int array[4][4] = { { 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 },
{ 13, 14, 15, 16 }
};
PrintMatrix(array, 4, 4);
return 0;
}
顺时针打印矩阵
最新推荐文章于 2021-05-24 17:51:15 发布