c语言请写一个函数,使给定的一个3×3的二维整型数组转置,即行列互换。
时间: 2024-12-24 12:31:47 浏览: 1
南开C语言一百题最终txt版
在 C 语言中,你可以创建一个函数 `transpose_matrix` 来实现这个功能。下面是一个简单的示例,它接受一个 3x3 的二维整数数组,并返回其转置:
```c
#include <stdio.h>
// 定义矩阵的行数和列数
#define ROWS 3
#define COLS 3
// 函数声明
void transpose_matrix(int matrix[ROWS][COLS], int transposed[ROWS][COLS]);
int main() {
// 初始化原矩阵
int original[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
// 创建用于存储转置结果的新矩阵
int transposed[ROWS][COLS];
// 转置原矩阵
transpose_matrix(original, transposed);
// 打印转置后的矩阵
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", transposed[i][j]);
}
printf("\n");
}
return 0;
}
// 实现转置函数
void transpose_matrix(int matrix[ROWS][COLS], int transposed[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
// 交换行i和列j的元素
transposed[j][i] = matrix[i][j];
}
}
}
```
在这个程序中,我们首先定义了一个原始的 3x3 矩阵 `original`,然后创建一个新矩阵 `transposed` 存储转置后的结果。`transpose_matrix` 函数遍历原矩阵的每个元素,将它们从行索引移动到列索引,并保存到新的矩阵。
阅读全文