# Matrix Rotation in C By 90 Degree | Clockwise & Anti-Clockwise

## Introduction

This article will delve into the intricacies of matrix rotation in C by 90 degrees, exploring both clockwise and anti-clockwise rotations.

In the realm of computer programming, matrix rotation is a fundamental operation that involves transforming the elements of a matrix by rotating it by a certain degree.

One common requirement is to rotate a matrix by 90 degrees, either clockwise or anti-clockwise, in the C programming language.

By the end, you will have a solid understanding of how to accomplish this task with confidence and efficiency.

## The Importance of Matrix Rotation in C

Matrix rotation plays a vital role in various computational tasks, ranging from image processing to game development.

By rotating a matrix, we can manipulate the orientation of elements, facilitating easier access and computation.

This technique is particularly useful in scenarios where data needs to be transformed or manipulated in a way that aligns with a specific requirement.

## Matrix Rotation in C By 90 Degree (Clockwise)

To perform a clockwise rotation of a matrix by 90 degrees in C, we need to follow a systematic approach.

Here’s a step-by-step guide:

### Step 1: Transpose the Matrix

The first step is to transpose the given matrix. Transposing a matrix involves swapping its rows with columns.

By interchanging the elements across the main diagonal, we effectively flip the matrix along its diagonal axis.

### Step 2: Reverse Each Row

After transposing the matrix, we need to reverse each row. This reversal can be achieved by swapping the elements of each row from the outermost columns towards the center.

### Example Code

``````// Function to rotate a matrix by 90 degrees clockwise
void rotateClockwise(int matrix[][N]) {
// Step 1: Transpose the matrix
for (int i = 0; i < N; i++) {
for (int j = i; j < N; 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 < N; i++) {
for (int j = 0, k = N - 1; j < k; j++, k--) {
int temp = matrix[i][j];
matrix[i][j] = matrix[i][k];
matrix[i][k] = temp;
}
}
}
``````

## Matrix Rotation in C By 90 Degree (Anti-Clockwise)

In contrast to the clockwise rotation, the anti-clockwise rotation of a matrix by 90 degrees follows a slightly different approach.

Also Read: Best 5 Programs on Fibonacci Series in C

Let’s explore the steps involved:

### Step 1: Transpose the Matrix

Similar to the clockwise rotation, the first step is to transpose the given matrix.

This entails swapping the rows with the columns, resulting in a flipped matrix along the main diagonal.

### Step 2: Reverse Each Column

After transposing the matrix, we need to reverse each column.

By swapping the elements of each column from the top to the bottom, we achieve the desired anti-clockwise rotation.

Also Read: Armstrong Number in C Programming

### Example Code

``````// Function to rotate a matrix by 90 degrees anti-clockwise
void rotateAntiClockwise(int matrix[][N]) {
// Step 1: Transpose the matrix
for (int i = 0; i < N; i++) {
for (int j = i; j < N; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}

// Step 2: Reverse each column
for (int j = 0; j < N; j++) {
for (int i = 0, k = N - 1; i < k; i++, k--) {
int temp = matrix[i][j];
matrix[i][j] = matrix[k][j];
matrix[k][j] = temp;
}
}
}``````

Q: How can I rotate a non-square matrix by 90 degrees in C?

To rotate a non-square matrix by 90 degrees, you can use the same transpose and reverse steps. However, you need to adjust the loop conditions and dimensions accordingly to accommodate the non-square shape of the matrix.

Q: Can I rotate a matrix in-place without using additional memory?

Yes, the methods described for both clockwise and anti-clockwise rotations are in-place operations, meaning they do not require additional memory beyond the original matrix.

Q: Is it possible to rotate a matrix by an angle other than 90 degrees?

Yes, you can rotate a matrix by any angle using transformation matrices. However, the process is more complex and involves trigonometric calculations.

Q: Are there any libraries or functions available for matrix rotation in C?

The C programming language itself does not provide built-in functions for matrix rotation. However, you can implement your own functions or explore external libraries that offer matrix manipulation capabilities.

Q: How can I test my matrix rotation implementation in C?

To test your matrix rotation implementation, you can create sample matrices and apply the rotation functions. Verify the output by manually checking the rotated elements against the expected results.

Q: Are there any performance considerations for matrix rotation in C?

Matrix rotation by 90 degrees using the described methods has a time complexity of O(N^2), where N represents the number of rows (or columns) in the matrix. Be mindful of the matrix size and optimize the algorithm if needed.

## Conclusion

Matrix rotation in C by 90 degrees, whether clockwise or anti-clockwise, is a valuable technique for manipulating and transforming matrix elements.

By following the step-by-step approaches outlined in this article, you can confidently rotate matrices in your C programs.

Remember to transpose the matrix and reverse the rows or columns as necessary. With this newfound knowledge, you can apply matrix rotation in various domains, from image transformations to algorithmic problem-solving.