在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`函数通过创建一个临时矩阵来存储旋转后的结果。对于每个元素,它计算新的位置,并将原始矩阵中的元素复制到临时矩阵中的新位置。最后,它将临时矩阵中的内容复制回原始矩阵。 请注意,这个示例仅适用于固定大小的方阵。如果你需要处理不同大小的矩阵,你需要调整代码以适应不同的情况,例如动态分配内存来处理任意大小的矩阵。