用C写一个数字旋转方阵
时间: 2024-09-25 20:08:22 浏览: 36
在C语言中,你可以通过数组操作和临时变量来创建一个数字旋转矩阵。假设我们要将一个正方形二维数组顺时针旋转90度,这是一个常见的编程练习。这里有一个简单的例子:
```c
#include <stdio.h>
// 函数定义,接受一个二维数组和它的尺寸作为参数
void rotate(int matrix[rows][cols], int rows, int cols) {
// 创建一个新的临时二维数组,用于存储旋转后的矩阵
int temp[cols][rows];
// 遍历原始矩阵,将元素复制到临时数组,按逆时针方向填充
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
temp[j][rows - i - 1] = matrix[i][j]; // 从左上角开始,逆时针填入
}
}
// 将临时数组的内容赋值回原数组,完成旋转
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
matrix[i][j] = temp[j][i];
}
}
}
int main() {
int size = 4;
int matrix[size][size] = {1, 2, 3, 4,
5, 6, 7, 8,
9, 10, 11, 12,
13, 14, 15, 16};
printf("Original Matrix:\n");
print_matrix(matrix, size);
rotate(matrix, size, size);
printf("\nRotated Matrix:\n");
print_matrix(matrix, size);
return 0;
}
// 打印矩阵函数,仅用于演示
void print_matrix(int matrix[rows][cols], int rows) {
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
```
在这个程序中,`rotate`函数负责旋转矩阵,`main`函数则创建一个示例矩阵并打印旋转前后的结果。运行此程序会看到顺时针旋转90度的效果。
阅读全文