用c++实现顺时针旋转90度二维矩阵
时间: 2024-12-07 17:02:15 浏览: 45
在C++中,可以使用数组或矩阵数据结构来实现二维矩阵的顺时针旋转90度。这里提供一种常见的矩阵转置后再翻转的方法:
```cpp
#include <iostream>
using namespace std;
void rotateMatrix(int matrix[4][4], int n) {
// 先做矩阵转置
for (int i = 0; i < n; ++i) {
for (int j = i; j < n; ++j) {
swap(matrix[i][j], matrix[j][i]);
}
}
// 再做矩阵翻转
for (int i = 0; i < n / 2; ++i) {
for (int j = 0; j < n; ++j) {
swap(matrix[i][j], matrix[n - 1 - j][i]);
}
}
}
// 测试函数
void printMatrix(int matrix[4][4]) {
for (int i = 0; i < 4; ++i) {
for (int j = 0; j < 4; ++j) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
}
int main() {
int matrix[4][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}
};
int n = sizeof(matrix) / sizeof(matrix[0]);
rotateMatrix(matrix, n);
printMatrix(matrix);
return 0;
}
```
当你运行这个程序,输入的4x4矩阵将会被顺时针旋转90度。
阅读全文