将一个二维数组的行和列的元素互换,存到另一个二维数组中。 3

将一个二维数组的行和列的元素互换,存到另一个二维数组中。
运行结果

#include <stdio.h>

#define ROWS 3
#define COLS 4

void transpose(int a[ROWS][COLS], int b[COLS][ROWS]);

int main() {
    int a[ROWS][COLS] = {
        {1, 2, 3, 4},
        {5, 6, 7, 8},
        {9, 10, 11, 12}
    };
    int b[COLS][ROWS];

    transpose(a, b);

    printf("Original array:\n");
    for (int i = 0; i < ROWS; i++) {
        for (int j = 0; j < COLS; j++) {
            printf("%d ", a[i][j]);
        }
        printf("\n");
    }

    printf("Transposed array:\n");
    for (int i = 0; i < COLS; i++) {
        for (int j = 0; j < ROWS; j++) {
            printf("%d ", b[i][j]);
        }
        printf("\n");
    }

    return 0;
}

void transpose(int a[ROWS][COLS], int b[COLS][ROWS]) {
    for (int i = 0; i < ROWS; i++) {
        for (int j = 0; j < COLS; j++) {
            b[j][i] = a[i][j];
        }
    }
}


#include<stdio.h>
int main()
{
    int b[3][2];
    int i,j;
    int a[2][3]={{1,2,3},{4,5,6}};
    printf("原数组a=\n");
    for(i=0;i<=1;i++)
    {
        for(j=0;j<=2;j++)
        {
            printf("%5d ",a[i][j]);
            b[j][i]=a[i][j];
        }
        printf("\n");
    }
    printf("新数组b=\n");
    for(i=0;i<=2;i++)
    {
        for(j=0;j<=1;j++)
        {
            printf("%5d",b[i][j]);
        }
        printf("\n");
    }
    return 0;
}