#include <stdio.h>
#define ROWS 3 // Original matrix rows
#define COLS 4 // Original matrix columns
void rotate90Clockwise(int matrix[ROWS][COLS], int rotated[COLS][ROWS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
rotated[j][ROWS - 1 - i] = matrix[i][j]; // Mapping to rotated position
}
}
}
// Function to print a matrix
void printMatrix(int rows, int cols, int matrix[][ROWS]) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
int main() {
int matrix[ROWS][COLS] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
int rotated[COLS][ROWS]; // New rotated matrix
rotate90Clockwise(matrix, rotated);
printf("\nRotated Matrix:\n");
printMatrix(COLS, ROWS, rotated);
return 0;
}
/*
run:
Rotated Matrix:
9 5 1
10 6 2
11 7 3
12 8 4
*/