可以通過循環遍歷數組的每個元素,并使用臨時變量進行元素互換的操作來實現數組行列元素的互換。具體實現如下:
#include <stdio.h>
#define ROWS 3
#define COLS 4
void transpose(int matrix[ROWS][COLS], int transposed[COLS][ROWS]) {
int i, j;
for(i = 0; i < ROWS; i++) {
for(j = 0; j < COLS; j++) {
transposed[j][i] = matrix[i][j];
}
}
}
int main() {
int matrix[ROWS][COLS] = { {1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12} };
int transposed[COLS][ROWS];
int i, j;
transpose(matrix, transposed);
printf("Original Matrix:\n");
for(i = 0; i < ROWS; i++) {
for(j = 0; j < COLS; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
printf("\nTransposed Matrix:\n");
for(i = 0; i < COLS; i++) {
for(j = 0; j < ROWS; j++) {
printf("%d ", transposed[i][j]);
}
printf("\n");
}
return 0;
}
運行結果:
Original Matrix:
1 2 3 4
5 6 7 8
9 10 11 12
Transposed Matrix:
1 5 9
2 6 10
3 7 11
4 8 12
該程序中,transpose
函數負責實現數組的行列元素互換,接受一個二維數組和一個目標二維數組作為參數。兩個嵌套的循環遍歷原始數組的所有元素,并將其賦值給目標數組的對應位置,從而實現了行列元素的互換。在main
函數中,我們定義了一個3行4列的二維數組matrix
,并調用transpose
函數將其行列元素互換后存儲在transposed
數組中。最后,我們分別打印原始數組和互換后的數組,觀察互換結果是否正確。