阅读量:0
可以通过循环遍历数组的每个元素,并使用临时变量进行元素互换的操作来实现数组行列元素的互换。具体实现如下:
#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
数组中。最后,我们分别打印原始数组和互换后的数组,观察互换结果是否正确。