C言語における二次元配列の行列の入れ替えの方法は何ですか?

二次元配列の行列を交換する方法は、新しい二次元配列を作成し、元の配列の行を新しい配列の列として配置し、元の配列の列を新しい配列の行として配置することです。具体的な手順は次の通りです:

  1. カラム
  2. 列 (れつ)
  3. 配列を転置する
  4. transposeArray[j][i] = array[i][j]
    j番目の配列のi番目にarrayのi番目の要素を代入します。
  5. 配列を転置する

C言語を使って二次元配列の行と列を交換するサンプルコードが以下に示されています。

#include <stdio.h>

#define MAX_ROWS 3
#define MAX_COLS 3

void transpose(int array[MAX_ROWS][MAX_COLS], int transposeArray[MAX_COLS][MAX_ROWS], int rows, int cols) {
    int i, j;
    for(i = 0; i < rows; i++) {
        for(j = 0; j < cols; j++) {
            transposeArray[j][i] = array[i][j];
        }
    }
}

int main() {
    int array[MAX_ROWS][MAX_COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    int transposeArray[MAX_COLS][MAX_ROWS];
    int rows = MAX_ROWS;
    int cols = MAX_COLS;

    // 调用函数进行行列互换
    transpose(array, transposeArray, rows, cols);

    // 输出互换后的结果
    int i, j;
    for(i = 0; i < cols; i++) {
        for(j = 0; j < rows; j++) {
            printf("%d ", transposeArray[i][j]);
        }
        printf("\n");
    }

    return 0;
}

以上のコードを実行すると、出力結果は次の通りです:

1 4 7 
2 5 8 
3 6 9 

これが行列を入れ替える方法です。

bannerAds