c言語で行列の転置を行うには

行列変換するには、2 次元配列を使用して行列を表すことができます。以下にサンプルコードを示します。

#include <stdio.h>

#define ROW 3
#define COL 3

void transpose(int matrix[ROW][COL], int result[COL][ROW]) {
    for (int i = 0; i < ROW; i++) {
        for (int j = 0; j < COL; j++) {
            result[j][i] = matrix[i][j];
        }
    }
}

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

    transpose(matrix, result);

    printf("Original Matrix:\n");
    for (int i = 0; i < ROW; i++) {
        for (int j = 0; j < COL; j++) {
            printf("%d ", matrix[i][j]);
        }
        printf("\n");
    }

    printf("\nTransposed Matrix:\n");
    for (int i = 0; i < COL; i++) {
        for (int j = 0; j < ROW; j++) {
            printf("%d ", result[i][j]);
        }
        printf("\n");
    }

    return 0;
}

上のコードでは、行列を入れ替える行列の転置を実行する`transpose`という関数を定義しています。この関数は2つの引数を受け取ります。1つ目は元の行列、2つ目は転置結果の行列です。この関数では、2つの入れ子になったループを使用して元の行列のすべての要素を探索し、それらを転置結果の行列の対応する位置の要素に割り当てます。

main関数では、3×3サイズの配列matrixを定義し、transpose関数を呼び出して配列の転置を計算しています。最後に、2つの入れ子になったループを使って、元の配列と転置された配列をそれぞれプリントしています。

bannerAds