旋转矩阵怎么用c语言写
时间: 2024-10-19 13:16:52 浏览: 67
在C语言中,旋转矩阵通常是指将一个二维数组按顺时针或逆时针方向旋转90度、180度或270度的操作。这里我们以顺时针旋转90度为例,假设原矩阵是一个n x n的数组。
```c
#include <stdio.h>
// 函数定义,用于旋转矩阵
void rotateMatrix(int matrix[n][n], int n) {
// 使用临时数组存储旋转后的矩阵
int temp[n][n];
// 遍历矩阵,将每个元素复制到临时数组中,按照新位置存放
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
temp[j][n - 1 - i] = matrix[i][j]; // 将原下标对角线移动到新位置
}
}
// 把临时数组的内容复制回原矩阵
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
matrix[i][j] = temp[i][j];
}
}
}
// 测试函数
int main() {
int matrix[4][4] = { {1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16} };
int n = 4;
printf("Original Matrix:\n");
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
rotateMatrix(matrix, n);
printf("\nRotated Matrix (90 degrees clockwise):\n");
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
这个程序会打印出原始矩阵和旋转90度后的矩阵。注意,你需要替换`matrix`和`n`为你实际需要旋转的矩阵尺寸。
阅读全文