c语言矩阵顺时针旋转90度
时间: 2023-11-07 19:49:57 浏览: 86
矩阵顺时针旋转90度可以使用以下方法:
1. 先将矩阵沿主对角线翻转(即行和列互换);
2. 再将矩阵沿中垂线翻转(即左右翻转)。
具体的代码实现如下:
```c
#include <stdio.h>
#define N 3
void rotate(int matrix[][N]) {
// 沿主对角线翻转
for (int i = 0; i < N; i++) {
for (int j = i + 1; j < N; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
// 沿中垂线翻转
for (int i = 0; i < N; i++) {
for (int j = 0; j < N / 2; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[i][N - 1 - j];
matrix[i][N - 1 - j] = temp;
}
}
}
int main() {
int matrix[N][N] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
printf("原矩阵:\n");
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
rotate(matrix);
printf("旋转后的矩阵:\n");
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
运行结果如下:
```
原矩阵:
1 2 3
4 5 6
7 8 9
旋转后的矩阵:
7 4 1
8 5 2
9 6 3
```