Print a 2D Array or Matrix using single loop (original) (raw)

Last Updated : 08 Jun, 2021

Given a matrix mat[][] of N * M dimensions, the task is to print the elements of the matrix using a single for loop.

Examples:

Input: mat[][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
Output: 1 2 3 4 5 6 7 8 9

Input: mat[][] = {{7, 9}, {10, 34}, {12, 15}}
Output: 7 9 10 34 12 15

Approach: To traverse the given matrix using a single loop, observe that there are only N * M elements. Therefore, the idea is to use modulus and division to switch the rows and columns while iterating a single loop over the range [0, N * M]. Follow the steps below to solve the given problem:

Below is the implementation of the above approach:

C++ `

// C++ program for the above approach #include using namespace std;

// Function to print the element // of 2D matrix using single loop void print2DMatrix(int arr[][3], int rows, int columns) {

// Iterate over the range
// [0, rows*columns]

for(int i = 0; i < rows * columns; i++)
{
    
    // Find row and column index
    int row = i / columns;
    int col = i % columns;

    // Print the element at
    // current index
    cout << arr[row][col] << " ";
}

}

// Driver Code int main() {

// Given matrix mat[][]
int mat[][3] = { { 1, 2, 3 }, 
                 { 4, 5, 6 }, 
                 { 7, 8, 9 } };

// Dimensions of the matrix
int N = sizeof(mat) / sizeof(mat[0]);
int M = sizeof(mat[0]) / sizeof(mat[0][0]);

// Function Call
print2DMatrix(mat, N, M);
return 0;

}

// This code is contributed by akhilsaini

Java

// Java Program for the above approach

import java.io.*;

class GFG {

// Function to print the element
// of 2D matrix using single loop
public static void print2DMatrix(
    int arr[][], int rows, int columns)
{

    // Iterate over the range
    // [0, rows*columns]
    for (int i = 0;
         i < rows * columns; i++) {

        // Find row and column index
        int row = i / columns;
        int col = i % columns;

        // Print the element at
        // current index
        System.out.print(
            arr[row][col] + " ");
    }
}

// Driver Code
public static void main(String[] args)
{
    // Given matrix mat[][]
    int[][] mat = { { 1, 2, 3 },
                    { 4, 5, 6 },
                    { 7, 8, 9 } };

    // Dimensions of the matrix
    int N = mat.length;
    int M = mat[0].length;

    // Function Call
    print2DMatrix(mat, N, M);
}

}

Python3

Python3 program for the above approach

Function to print the element

of 2D matrix using single loop

def print2DMatrix(arr, rows, columns):

Iterate over the range

[0, rows*columns]

for i in range(0, rows * columns):

# Find row and column index
row = i // columns
col = i % columns

# Print the element at
# current index
print(arr[row][col], end = ' ')

Driver Code

if name == 'main':

Given matrix mat[][]

mat = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ]

Dimensions of the matrix

N = len(mat) M = len(mat[0])

Function Call

print2DMatrix(mat, N, M)

This code is contributed by akhilsaini

C#

// C# program for the above approach using System;

class GFG{

// Function to print the element // of 2D matrix using single loop public static void print2DMatrix(int[, ] arr, int rows, int columns) {

// Iterate over the range
// [0, rows*columns]
for(int i = 0; i < rows * columns; i++) 
{
    
    // Find row and column index
    int row = i / columns;
    int col = i % columns;

    // Print the element at
    // current index
    Console.Write(arr[row, col] + " ");
}

}

// Driver Code public static void Main() {

// Given matrix mat[][]
int[, ] mat = { { 1, 2, 3 }, 
                { 4, 5, 6 }, 
                { 7, 8, 9 } };

// Dimensions of the matrix
int N = mat.GetLength(0);
int M = mat.GetLength(1);

// Function Call
print2DMatrix(mat, N, M);

} }

// This code is contributed by akhilsaini

JavaScript

`

Time Complexity: O(N * M)
Auxiliary Space: O(1)

Similar Reads