c语言编程中数组怎么进行转置

时间:2025-03-05 04:30:53 明星趣事

在C语言中,数组转置通常意味着将数组的行和列互换。对于一个二维数组`arr[m][n]`,其转置`arr^T[n][m]`可以通过两层循环实现,外层循环遍历原数组的行,内层循环遍历原数组的列,并将元素赋值给转置后的位置。

```c

include

void transpose(int arr) {

int temp;

for (int i = 0; i < 3; i++) {

for (int j = i + 1; j < 3; j++) {

temp = arr[i][j];

arr[i][j] = arr[j][i];

arr[j][i] = temp;

}

}

}

int main() {

int arr = {

{1, 2, 3},

{4, 5, 6},

{7, 8, 9}

};

printf("原始数组:\n");

for (int i = 0; i < 3; i++) {

for (int j = 0; j < 3; j++) {

printf("%d ", arr[i][j]);

}

printf("\n");

}

transpose(arr);

printf("转置后的数组:\n");

for (int i = 0; i < 3; i++) {

for (int j = 0; j < 3; j++) {

printf("%d ", arr[i][j]);

}

printf("\n");

}

return 0;

}

```

在这个示例中,`transpose`函数通过两层循环实现了数组的转置。注意内层循环从`i + 1`开始,这样可以避免对角线元素的重复交换。

对于多维数组,例如一个3x4的数组,转置后可能需要一个4x3的数组来存储结果。这种情况下,你需要动态分配内存来创建新的数组,并确保在转置过程中正确处理数组的维度。

希望这个示例能帮助你理解如何在C语言中实现数组的转置。