c语言编译一个函数让一个二维矩阵顺时针逆转90°
时间: 2024-09-19 18:02:59 浏览: 32
C语言判断一个二维数组是否为上三角矩阵的示例代码.pdf
在C语言中,要编写一个函数将二维矩阵顺时针旋转90度,我们可以采用以下步骤:
1. 定义一个辅助函数,用于交换两个矩阵元素。这通常是临时保存一个元素,再将另一个元素赋给原来的位置,最后恢复第一个元素。
2. 定义主函数,接受一个二维整型数组(即矩阵)作为输入参数,并声明一个新的临时二维数组,用于存储逆序后的结果。
3. 使用两层嵌套循环,遍历原矩阵的每一个元素,根据旋转规则(左上角到右下角的路径)将其移动到临时数组的对应位置。
4. 最后,返回或直接覆盖原矩阵为逆序后的结果。
以下是简单的C语言代码示例:
```c
#include <stdio.h>
// 辅助函数,交换两个元素
void swap(int a[], int i, int j) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
// 顺时针旋转90度的函数
void rotateMatrix(int matrix[4][4]) {
int temp[4][4]; // 临时二维数组
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
temp[j][3 - i] = matrix[i][j]; // 顺时针旋转
}
}
// 将临时数组的内容复制回原矩阵
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
matrix[i][j] = temp[i][j];
}
}
}
// 测试函数
int main() {
int matrix[4][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}
};
printf("Original Matrix:\n");
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
rotateMatrix(matrix);
printf("Rotated Matrix (90 degrees clockwise):\n");
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
阅读全文