c语言

c语言数组行列互换怎么实现

小亿
247
2023-10-27 18:00:32
栏目: 编程语言

要实现数组的行列互换,可以使用两个循环嵌套遍历数组,将数组的行与列进行交换。

以下是一个示例代码:

#include <stdio.h>

#define ROWS 3
#define COLS 4

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

void printMatrix(int matrix[ROWS][COLS]) {
    for (int i = 0; i < ROWS; i++) {
        for (int j = 0; j < COLS; j++) {
            printf("%d ", matrix[i][j]);
        }
        printf("\n");
    }
    printf("\n");
}

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

    int transposed[COLS][ROWS];

    printf("Original matrix:\n");
    printMatrix(matrix);

    transpose(matrix, transposed);

    printf("Transposed matrix:\n");
    printMatrix(transposed);

    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()函数用于实现数组的行列互换,printMatrix()函数用于打印数组。在main()函数中,首先定义了一个原始矩阵matrix,然后定义了一个用于存储转置后矩阵的数组transposed。接着,调用transpose()函数将matrix转置为transposed,最后通过调用printMatrix()函数打印原始矩阵和转置后的矩阵。

0
看了该问题的人还看了