c语言矩阵转置代码

以下是一个用C语言实现矩阵转置的代码示例:

#include <stdio.h>

#define ROWS 3
#define COLS 3

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

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

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

    printf("原始矩阵:\n");
    printMatrix(matrix);

    transposeMatrix(matrix, result);

    printf("转置矩阵:\n");
    printMatrix(result);

    return 0;
}

这个代码示例中,我们定义了一个transposeMatrix函数来实现矩阵转置操作。该函数接受一个输入矩阵和一个输出矩阵作为参数,并将输入矩阵的转置结果存储在输出矩阵中。

main函数中,我们定义了一个3x3的矩阵matrix,并调用transposeMatrix函数将其转置存储在result矩阵中。然后,我们使用printMatrix函数分别打印原始矩阵和转置矩阵的内容。

运行该代码,输出结果如下:

原始矩阵:
1 2 3 
4 5 6 
7 8 9 
转置矩阵:
1 4 7 
2 5 8 
3 6 9 

可以看到,原始矩阵的行变成了转置矩阵的列,转置矩阵的行变成了原始矩阵的列。

当然,我可以继续为您。

矩阵转置是指将矩阵的行和列互换位置,即将矩阵的第i行转置为第i列,第j列转置为第j行。在C语言中,可以使用双重循环来实现矩阵转置操作。

在上面的代码示例中,transposeMatrix函数使用两个嵌套的循环来遍历输入矩阵的所有元素。对于每个元素,它将其值复制到输出矩阵的对应位置,即将输入矩阵的第i行第j列的元素复制到输出矩阵的第j行第i列的位置。

printMatrix函数用于打印矩阵的内容。它使用两个嵌套的循环来遍历矩阵的所有元素,并使用printf函数将每个元素打印出来。在每行的末尾,它使用printf函数打印一个换行符,以确保每行的元素都打印在一行上。

main函数中,我们首先定义了一个3x3的矩阵matrix,并初始化其元素的值。然后,我们定义了一个与输入矩阵大小相反的输出矩阵result。接下来,我们调用transposeMatrix函数将输入矩阵转置,并将结果存储在输出矩阵中。最后,我们使用printMatrix函数分别打印原始矩阵和转置矩阵的内容。

希望这次的回答能够满足您的需求。如果您还有其他问题,请随时提问。