您的位置:首页 > 编程语言 > C语言/C++

‘之’字形打印矩阵

2016-03-03 15:07 232 查看
void PrintLevel(int** matrix,int tR,int tC,int dR,int dC,bool fromUp)
{
if (fromUp)
{
while (tR != dR + 1)
{
printf("%d", matrix[tR++][tC--]);
}
}
else
{
while (dR != tR - 1)
{
printf("%d ", matrix[dR--][dC++]);
}
}
}

void PrintMatrixZigZag(int **matrix, int rows, int columns)
{
int tR = 0;
int tC = 0;
int dR = 0;
int dC = 0;
int endR = rows - 1;
int endC = columns - 1;
bool fromUp = false;//通过此变量的变化来改变斜线打印的方向
while (tR != endR + 1)
{
PrintLevel(matrix, tR, tC, dR, dC, fromUp);
tR = tC == endC ? tR + 1 : tR;
tC = tC == endC ? tC : tC + 1;
dC = dR == endR ? dC + 1 : dC;
dR = dR == endR ? dR : dR + 1;
fromUp = !fromUp;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言