實現二維數組行列互換的方法是通過創建一個新的二維數組,將原數組的行作為新數組的列,原數組的列作為新數組的行。具體的步驟如下:
rows
和cols
。cols
行rows
列,記為transposeArray
。transposeArray[j][i] = array[i][j]
。transposeArray
即為原數組行列互換后的結果。以下是一個用C語言實現二維數組行列互換的示例代碼:
#include <stdio.h>
#define MAX_ROWS 3
#define MAX_COLS 3
void transpose(int array[MAX_ROWS][MAX_COLS], int transposeArray[MAX_COLS][MAX_ROWS], int rows, int cols) {
int i, j;
for(i = 0; i < rows; i++) {
for(j = 0; j < cols; j++) {
transposeArray[j][i] = array[i][j];
}
}
}
int main() {
int array[MAX_ROWS][MAX_COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int transposeArray[MAX_COLS][MAX_ROWS];
int rows = MAX_ROWS;
int cols = MAX_COLS;
// 調用函數進行行列互換
transpose(array, transposeArray, rows, cols);
// 輸出互換后的結果
int i, j;
for(i = 0; i < cols; i++) {
for(j = 0; j < rows; j++) {
printf("%d ", transposeArray[i][j]);
}
printf("\n");
}
return 0;
}
運行以上代碼,輸出結果為:
1 4 7
2 5 8
3 6 9
這就是二維數組行列互換的方法。