void PrintMatrixInCircle(int** number, int columns, int rows, int startY, int startX)
{
int endX = rows - startY -1;
int endY = columns - startX -1;
//向左输出数组中的值;
for(int i = startY; i <= endY; i++)
printf("%d ", number[startX][i]);
//向下输出数组中的值
for(int i = startX + 1; i <= endX; i++)
printf("%d ", number[i][endY]);
//向右输出数组中的值
if(startX != endX)
for(int i = endY-1; i >= startY; i--)
printf("%d ", number[endX][i]);
//向上输出数组中的值;
if(startY != endY)
for(int i = endX -1; i > startX; i--)
printf("%d ", number[i][startY]);
}
void PrintMatrix(int** number, int columns, int rows)
{
if(number == NULL || columns <= 0 || rows <= 0)
return;
int startX = 0;
int startY = 0;
while(rows > startX * 2 && columns > startY * 2)
{
PrintMatrixInCircle(number, columns, rows, startY, startX);
++startX;
++startY;
}
}
顺时针打印矩阵
最新推荐文章于 2022-05-16 16:44:25 发布