要实现二维数组的行列互换,可以通过两层循环来完成。具体步骤如下:
定义一个新的二维数组,用于存储行列互换后的结果。使用两层循环遍历原始二维数组的每个元素。将原始数组的行索引作为新数组的列索引,将原始数组的列索引作为新数组的行索引,将对应的元素值复制到新数组中。最后,新数组的行数等于原始数组的列数,新数组的列数等于原始数组的行数。下面是一个示例代码:
#include <stdio.h>#define ROWS 3#define COLS 4void transpose(int arr[][COLS], int transposed[][ROWS]) { for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { transposed[j][i] = arr[i][j]; } }}int main() { int arr[ROWS][COLS] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}; int transposed[COLS][ROWS]; transpose(arr, transposed); printf("Original array:\n"); for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { printf("%d ", arr[i][j]); } printf("\n"); } printf("\nTransposed array:\n"); for (int i = 0; i < COLS; i++) { for (int j = 0; j < ROWS; j++) { printf("%d ", transposed[i][j]); } printf("\n"); } return 0;}运行该代码,输出结果为:
Original array:1 2 3 45 6 7 89 10 11 12Transposed array:1 5 92 6 103 7 114 8 12可以看到,原始数组的行列互换后,得到的新数组的行数等于原始数组的列数,新数组的列数等于原始数组的行数。

