用C++实现,给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像
时间: 2023-02-09 18:36:52 浏览: 305
你可以使用以下的步骤来实现原地旋转矩阵:
1. 先将矩阵沿着左上角到右下角的对角线进行翻转(交换对角线两侧的元素)。
2. 再将矩阵的每一行进行翻转(交换每行的首尾元素)。
下面是用 C 语言实现的代码示例:
```
void rotate(int** matrix, int matrixSize, int* matrixColSize) {
// 矩阵沿着左上角到右下角的对角线进行翻转
for (int i = 0; i < matrixSize; i++) {
for (int j = i; j < matrixSize; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
// 将矩阵的每一行进行翻转
for (int i = 0; i < matrixSize; i++) {
for (int j = 0; j < matrixSize / 2; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[i][matrixSize - j - 1];
matrix[i][matrixSize - j - 1] = temp;
}
}
}
```
希望这个答案能帮到你!
阅读全文
相关推荐















