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