c语言 矩阵右转90°
时间: 2023-07-09 10:09:32 浏览: 91
要将一个矩阵向右旋转90度,可以先将其转置,然后再将每一行反转即可。
以下是代码示例:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
void print_matrix(int matrix[][COLS], int rows, int cols)
{
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
void rotate_matrix(int matrix[][COLS], int rows, int cols)
{
// 转置矩阵
for (int i = 0; i < rows; i++) {
for (int j = i + 1; j < cols; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
// 反转每一行
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols / 2; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[i][cols - j - 1];
matrix[i][cols - j - 1] = temp;
}
}
}
int main()
{
int matrix[ROWS][COLS] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
printf("原始矩阵:\n");
print_matrix(matrix, ROWS, COLS);
rotate_matrix(matrix, ROWS, COLS);
printf("旋转后矩阵:\n");
print_matrix(matrix, ROWS, COLS);
return 0;
}
```
输出结果:
```
原始矩阵:
1 2 3
4 5 6
7 8 9
旋转后矩阵:
7 4 1
8 5 2
9 6 3
```