using System;
class Program
{
static void Rotate90Clockwise(int[,] matrix) {
int rows = matrix.GetLength(0);
// Step 1: Transpose the matrix
for (int i = 0; i < rows; i++) {
for (int j = i; j < rows; j++) {
int temp = matrix[i, j];
matrix[i, j] = matrix[j, i];
matrix[j, i] = temp;
}
}
// Step 2: Reverse each row
for (int i = 0; i < rows; i++) {
for (int j = 0, k = rows - 1; j < k; j++, k--) {
int temp = matrix[i, j];
matrix[i, j] = matrix[i, k];
matrix[i, k] = temp;
}
}
}
static void PrintMatrix(int[,] matrix) {
int rows = matrix.GetLength(0);
for (int i = 0; i < rows; i++) {
for (int j = 0; j < rows; j++) {
Console.Write(matrix[i, j] + " ");
}
Console.WriteLine();
}
}
static void Main()
{
int[,] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
Console.WriteLine("Original Matrix:");
PrintMatrix(matrix);
Rotate90Clockwise(matrix);
Console.WriteLine("\nRotated Matrix:");
PrintMatrix(matrix);
}
}
/*
run:
Original Matrix:
1 2 3
4 5 6
7 8 9
Rotated Matrix:
7 4 1
8 5 2
9 6 3
*/