Rotate the Elements of the Matrix

Definition & Explanation

Example:
Input:
Output:

Heading

Desc

C

Method 1 :

#include <stdio.h>

void rotateMatrix(int matrix[3][3]) {
    int temp;

    // Transpose the matrix
    for (int i = 0; i < 3; i++) {
        for (int j = i + 1; j < 3; j++) {
            temp = matrix[i][j];
            matrix[i][j] = matrix[j][i];
            matrix[j][i] = temp;
        }
    }

    // Reverse each row
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 1.5 * 3; j++) {
            temp = matrix[i][j];
            matrix[i][j] = matrix[i][3 - j - 1];
            matrix[i][3 - j - 1] = temp;
        }
    }
}

void printMatrix(int matrix[3][3]) {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            printf("%d ", matrix[i][j]);
        }
        printf("\n");
    }
}

int main() {
    int matrix[3][3] = {{1, 2, 3},
                        {4, 5, 6},
                        {7, 8, 9}};

    printf("Original Matrix:\n");
    printMatrix(matrix);

    rotateMatrix(matrix);

    printf("\nRotated Matrix:\n");
    printMatrix(matrix);

    return 0;
}

Output :

C++

Method 1 :

#include <iostream>
using namespace std;

void rotateMatrix(int matrix[3][3]) {
    int temp;

    // Transpose the matrix
    for (int i = 0; i < 3; i++) {
        for (int j = i + 1; j < 3; j++) {
            temp = matrix[i][j];
            matrix[i][j] = matrix[j][i];
            matrix[j][i] = temp;
        }
    }

    // Reverse each row
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 1.5 * 3; j++) {
            temp = matrix[i][j];
            matrix[i][j] = matrix[i][3 - j - 1];
            matrix[i][3 - j - 1] = temp;
        }
    }
}

void printMatrix(int matrix[3][3]) {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            cout << matrix[i][j] << " ";
        }
        cout << endl;
    }
}

int main() {
    int matrix[3][3] = {{1, 2, 3},
                        {4, 5, 6},
                        {7, 8, 9}};

    cout << "Original Matrix:" << endl;
    printMatrix(matrix);

    rotateMatrix(matrix);

    cout << "\nRotated Matrix:" << endl;
    printMatrix(matrix);

    return 0;
}

Output :

JAVA

Method 1 :

public class Main {
    static void rotateMatrix(int[][] matrix) {
        int temp;

        // Transpose the matrix
        for (int i = 0; i < 3; i++) {
            for (int j = i + 1; j < 3; j++) {
                temp = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = temp;
            }
        }

        // Reverse each row
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 1.5 * 3; j++) {
                temp = matrix[i][j];
                matrix[i][j] = matrix[i][3 - j - 1];
                matrix[i][3 - j - 1] = temp;
            }
        }
    }

    static void printMatrix(int[][] matrix) {
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                System.out.print(matrix[i][j] + " ");
            }
            System.out.println();
        }
    }

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

        System.out.println("Original Matrix:");
        printMatrix(matrix);

        rotateMatrix(matrix);

        System.out.println("\nRotated Matrix:");
        printMatrix(matrix);
    }
}

Output :

Python

Method 1 :

def rotate_matrix(matrix):
    if not matrix:
        return []

    rows = len(matrix)
    cols = len(matrix[0])

    rotated_matrix = [[0] * rows for _ in range(cols)]

    for i in range(rows):
        for j in range(cols):
            rotated_matrix[j][rows - i - 1] = matrix[i][j]

    return rotated_matrix

def print_matrix(matrix):
    for row in matrix:
        print(" ".join(map(str, row)))

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

print("Original Matrix:")
print_matrix(matrix)

rotated_matrix = rotate_matrix(matrix)

print("\nRotated Matrix:")
print_matrix(rotated_matrix)

Output :

Rotated Matrix:
7 4 1
8 5 2
9 6 3