C言語で配列を使用して行列の2つの行の要素を交換する方法は何ですか。

行列の交換をするには、行列の各列を走査し、対応する位置の要素を交換する必要があります。以下はサンプルコードです:

#include <stdio.h>

#define ROWS 3
#define COLS 3

// 交换矩阵的两行元素
void swapRows(int matrix[ROWS][COLS], int row1, int row2) {
    for (int col = 0; col < COLS; col++) {
        // 交换两行对应位置的元素
        int temp = matrix[row1][col];
        matrix[row1][col] = matrix[row2][col];
        matrix[row2][col] = temp;
    }
}

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

    // 交换矩阵的两行元素
    swapRows(matrix, row1, row2);

    // 打印交换后的矩阵
    for (int row = 0; row < ROWS; row++) {
        for (int col = 0; col < COLS; col++) {
            printf("%d ", matrix[row][col]);
        }
        printf("\n");
    }

    return 0;
}

このコードでは、まず、swapRowsという関数が定義されます。この関数は、二次元配列であるmatrixと、行のインデックスであるrow1とrow2を受け取ります。関数の内部では、各列をループして、対応する行の要素を交換します。そして、main関数では、matrix配列と行のインデックスrow1とrow2が定義され、swapRows関数を呼び出して行の要素を交換します。最後に、入れ子の2つのループを使用して交換後の行列を出力します。このコードを実行すると、交換後の行列が出力されます。

4 5 6 
1 2 3 
7 8 9 
bannerAds