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