现有一9行7列整数矩阵,请设计一函数对其进行顺时针90度转置,存入新数组用C语言写
时间: 2024-12-17 19:28:58 浏览: 7
在C语言中,你可以创建一个函数来实现9x9整数矩阵的顺时针旋转。这里是一个简单的示例,假设输入矩阵是二维数组`matrix`:
```c
#include <stdio.h>
// 定义矩阵尺寸
#define ROWS 9
#define COLS 9
// 函数声明
void rotateMatrix(int matrix[ROWS][COLS], int newMatrix[ROWS][COLS]);
int main() {
// 初始化一个9x9的矩阵
int matrix[ROWS][COLS];
// ... (填充矩阵)
// 创建一个新的矩阵来存储转置后的结果
int newMatrix[ROWS][COLS];
// 转置并打印新的矩阵
rotateMatrix(matrix, newMatrix);
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", newMatrix[i][j]);
}
printf("\n");
}
return 0;
}
// 实现顺时针旋转函数
void rotateMatrix(int matrix[ROWS][COLS], int newMatrix[ROWS][COLS]) {
int temp, row, col;
// 遍历一半的矩阵(顺时针)
for (row = 0; row < ROWS / 2; row++) {
for (col = row; col < ROWS - row - 1; col++) { // 对角线交换元素
temp = matrix[row][col]; // 存储左上元素
newMatrix[col][ROWS - 1 - row] = matrix[row][COLS - 1 - col]; // 将右下元素移到新矩阵
newMatrix[ROWS - 1 - col][ROWS - 1 - row] = matrix[COLS - 1 - col][row]; // 右上到新矩阵
newMatrix[row][COLS - 1 - col] = matrix[ROWS - 1 - row][col]; // 左下到新矩阵
// 更新原矩阵元素
matrix[row][col] = temp; // 将临时值放回原位置
}
}
}
```
阅读全文