以蛇形打印矩阵
给定一个 nxn 矩阵。在给定的矩阵中,您必须以蛇形模式打印矩阵的元素。
例子 :
Input :mat[][] = { {10, 20, 30, 40},
{15, 25, 35, 45},
{27, 29, 37, 48},
{32, 33, 39, 50}};
Output : 10 20 30 40 45 35 25 15 27 29
37 48 50 39 33 32
Input :mat[][] = { {1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
Output : 1 2 3 6 5 4 7 8 9
我们遍历所有行。对于每一行,我们检查它是偶数还是奇数。如果是偶数,我们从左到右打印,否则从右到左打印。
C++
// C++ program to print matrix in snake order
#include
#define M 4
#define N 4
using namespace std;
void print(int mat[M][N])
{
// Traverse through all rows
for (int i = 0; i < M; i++) {
// If current row is even, print from
// left to right
if (i % 2 == 0) {
for (int j = 0; j < N; j++)
cout << mat[i][j] << " ";
// If current row is odd, print from
// right to left
} else {
for (int j = N - 1; j >= 0; j--)
cout << mat[i][j] << " ";
}
}
}
// Driver code
int main()
{
int mat[M][N] = { { 10, 20, 30, 40 },
{ 15, 25, 35, 45 },
{ 27, 29, 37, 48 },
{ 32, 33, 39, 50 } };
print(mat);
return 0;
}
Java
// Java program to print matrix in snake order
import java.util.*;
class GFG
{
static void print(int [][] mat)
{
// Traverse through all rows
for (int i = 0; i < mat.length; i++)
{
// If current row is even, print from
// left to right
if (i % 2 == 0)
{
for (int j = 0; j < mat[0].length; j++)
System.out.print(mat[i][j] +" ");
// If current row is odd, print from
// right to left
}
else
{
for (int j = mat[0].length - 1; j >= 0; j--)
System.out.print(mat[i][j] +" ");
}
}
}
// Driver code
public static void main(String[] args)
{
int mat[][] = new int[][]
{
{ 10, 20, 30, 40 },
{ 15, 25, 35, 45 },
{ 27, 29, 37, 48 },
{ 32, 33, 39, 50 }
};
print(mat);
}
}
/* This code is contributed by Mr. Somesh Awasthi */
Python3
# Python 3 program to print
# matrix in snake order
M = 4
N = 4
def printf(mat):
global M, N
# Traverse through all rows
for i in range(M):
# If current row is
# even, print from
# left to right
if i % 2 == 0:
for j in range(N):
print(str(mat[i][j]),
end = " ")
# If current row is
# odd, print from
# right to left
else:
for j in range(N - 1, -1, -1):
print(str(mat[i][j]),
end = " ")
# Driver code
mat = [[ 10, 20, 30, 40 ],
[ 15, 25, 35, 45 ],
[ 27, 29, 37, 48 ],
[ 32, 33, 39, 50 ]]
printf(mat)
# This code is contributed
# by ChitraNayal
C#
// C# program to print
// matrix in snake order
using System;
class GFG
{
static void print(int [,]mat)
{
// Traverse through all rows
for (int i = 0;
i < mat.GetLength(0); i++)
{
// If current row is
// even, print from
// left to right
if (i % 2 == 0)
{
for (int j = 0;
j < mat.GetLength(1); j++)
Console.Write(mat[i, j] + " ");
// If current row is
// odd, print from
// right to left
}
else
{
for (int j = mat.GetLength(1) - 1;
j >= 0; j--)
Console.Write(mat[i, j] + " ");
}
}
}
// Driver code
public static void Main()
{
int [,]mat = {{ 10, 20, 30, 40 },
{ 15, 25, 35, 45 },
{ 27, 29, 37, 48 },
{ 32, 33, 39, 50 }};
print(mat);
}
}
// This code is contributed
// by ChitraNayal
PHP
= 0; $j--)
echo $mat[$i][$j] , " ";
}
}
}
// Driver code
$mat = array(array(10, 20, 30, 40),
array(15, 25, 35, 45),
array(27, 29, 37, 48),
array(32, 33, 39, 50));
printLN($mat);
// This code is contributed by ajit
?>
Javascript
输出 :
10 20 30 40 45 35 25 15 27 29 37 48 50 39 33 32