c语言matrix rotation
时间: 2023-06-22 13:40:28 浏览: 101
矩阵旋转是一个非常常见的操作,可以用来实现图像处理、游戏开发等。在 C 语言中,可以使用二维数组来表示矩阵,然后通过一些算法实现矩阵旋转。
下面是一个简单的 C 语言程序,实现了一个 3x3 的矩阵逆时针旋转 90 度的操作:
```c
#include <stdio.h>
void rotate(int matrix[3][3]) {
int temp[3][3];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
temp[i][j] = matrix[2-j][i];
}
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
matrix[i][j] = temp[i][j];
}
}
}
int main() {
int matrix[3][3] = {{1,2,3}, {4,5,6}, {7,8,9}};
printf("Before rotation:\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
rotate(matrix);
printf("After rotation:\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
这个程序定义了一个 `rotate` 函数,接受一个 3x3 的矩阵作为参数。首先创建一个临时数组 `temp`,然后通过两个嵌套的循环将原矩阵中的每个元素旋转后存储到临时数组中。最后再将临时数组中的元素复制回原矩阵中,完成旋转操作。
在 `main` 函数中,先输出原矩阵,然后调用 `rotate` 函数进行旋转,再输出旋转后的矩阵。
阅读全文