c编程怎么做旋转矩阵

时间:2025-03-05 01:51:12 明星趣事

在C语言中实现矩阵的旋转,通常涉及到矩阵元素的重新排列。以下是一个简单的示例,展示了如何实现一个矩阵的顺时针旋转90度。这个示例假设矩阵的大小是固定的,并且是方阵(即行数和列数相等)。

```c

include

include

define N 4 // 定义矩阵的大小

// 函数声明

void rotateMatrix(int matrix[N][N]);

void printMatrix(int matrix[N][N]);

int main() {

int matrix[N][N];

int i, j;

// 输入矩阵

printf("Enter the elements of the matrix:\n");

for (i = 0; i < N; i++) {

for (j = 0; j < N; j++) {

scanf("%d", &matrix[i][j]);

}

}

// 打印原始矩阵

printf("Original matrix:\n");

printMatrix(matrix);

// 旋转矩阵

rotateMatrix(matrix);

// 打印旋转后的矩阵

printf("Matrix after 90 degrees rotation:\n");

printMatrix(matrix);

return 0;

}

// 旋转矩阵的函数

void rotateMatrix(int matrix[N][N]) {

int temp[N][N];

int i, j;

// 创建一个临时矩阵来存储旋转后的结果

for (i = 0; i < N; i++) {

for (j = 0; j < N; j++) {

temp[j][N - i - 1] = matrix[i][j];

}

}

// 将临时矩阵的内容复制回原矩阵

for (i = 0; i < N; i++) {

for (j = 0; j < N; j++) {

matrix[i][j] = temp[i][j];

}

}

}

// 打印矩阵的函数

void printMatrix(int matrix[N][N]) {

int i, j;

for (i = 0; i < N; i++) {

for (j = 0; j < N; j++) {

printf("%d ", matrix[i][j]);

}

printf("\n");

}

}

```

这个程序首先定义了一个4x4的矩阵,并提示用户输入矩阵的元素。然后,它调用`rotateMatrix`函数来旋转矩阵,并使用`printMatrix`函数在旋转前后打印矩阵的内容。

`rotateMatrix`函数通过创建一个临时矩阵来存储旋转后的结果。对于每个元素,它计算新的位置,并将原始矩阵中的元素复制到临时矩阵中的新位置。最后,它将临时矩阵中的内容复制回原始矩阵。

请注意,这个示例仅适用于固定大小的方阵。如果你需要处理不同大小的矩阵,你需要调整代码以适应不同的情况,例如动态分配内存来处理任意大小的矩阵。