二维数组转置在 C 语言中的实现70


在计算机科学中,二维数组是一种数据结构,它将元素存储在行和列构成的表格中。二维数组的转置是一个常见操作,它将数组的行和列互换,创建了一个新数组。这在各种应用中都有用,例如图像处理、数据分析和矩阵数学。

在 C 语言中,二维数组是一个指针数组,每个指针指向一个一维数组。要转置一个二维数组,需要逐行交换数组中的元素。这个过程可以使用嵌套循环来完成,如下所示:```c
#include
// 转置一个 m x n 的二维数组
void transpose(int arr, int m, int n) {
int i, j;
int temp;

// 遍历行
for (i = 0; i < m; i++) {
// 遍历列
for (j = i + 1; j < n; j++) {
// 交换元素
temp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = temp;
}
}
}
// 打印一个 m x n 的二维数组
void printArray(int arr, int m, int n) {
int i, j;

// 遍历行
for (i = 0; i < m; i++) {
// 遍历列
for (j = 0; j < n; j++) {
printf("%d ", arr[i][j]);
}
printf("");
}
}
int main() {
// 创建一个 3 x 4 的二维数组
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};

// 转置数组
transpose(arr, 3, 4);

// 打印转置后的数组
printArray(arr, 4, 3);

return 0;
}
```

在上面的示例中,我们定义了一个 3 行 4 列的二维数组 `arr`。`transpose` 函数接受数组地址、行数和列数作为输入,并逐行交换数组中的元素。随后,`printArray` 函数用于打印转置后的数组。

需要注意的是,转置操作并不会改变原始数组。它创建一个新数组,其中包含转置后的元素。在上面的示例中,`arr` 会保持不变,而转置后的数组将打印如下:```
1 5 9
2 6 10
3 7 11
4 8 12
```

2025-02-12


上一篇:C 语言中二维数组的最小值查找

下一篇:C语言函数库的强大功能和广泛应用