方法1: 新しい配列を使用する方法
- 元の2次元配列の行数と列数を取得します。
- 新しい2次元配列を作成し、行と列を反転させます。
- 元の2次元配列の要素を新しい2次元配列にコピーします。
以下にサンプルコードを示します:
#include <stdio.h>
#define ROWS 3
#define COLS 3
void reverseArray(int arr[ROWS][COLS], int newArr[COLS][ROWS]) {
int i, j;
for(i = 0; i < ROWS; i++) {
for(j = 0; j < COLS; j++) {
newArr[j][i] = arr[i][j];
}
}
}
void printArray(int arr[ROWS][COLS]) {
int i, j;
for(i = 0; i < ROWS; i++) {
for(j = 0; j < COLS; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
int main() {
int arr[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int newArr[COLS][ROWS];
printf("Original Array:\n");
printArray(arr);
reverseArray(arr, newArr);
printf("Reversed Array:\n");
printArray(newArr);
return 0;
}
この方法では、新しい2次元配列を作成し、元の配列の要素を新しい2次元配列に反転してコピーします。最後に、新しい2次元配列を出力します。
方法2: 元の配列内で要素の位置を交換する方法
- 元の2次元配列の行数と列数を取得します。
- 元の2次元配列内で、行と列のインデックスを交換します。
以下にサンプルコードを示します:
#include <stdio.h>
#define ROWS 3
#define COLS 3
void reverseArray(int arr[ROWS][COLS]) {
int i, j;
int temp;
for(i = 0; i < ROWS; i++) {
for(j = i + 1; j < COLS; j++) {
temp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = temp;
}
}
}
void printArray(int arr[ROWS][COLS]) {
int i, j;
for(i = 0; i < ROWS; i++) {
for(j = 0; j < COLS; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
int main() {
int arr[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
printf("Original Array:\n");
printArray(arr);
reverseArray(arr);
printf("Reversed Array:\n");
printArray(arr);
return 0;
}
この方法では、元の2次元配列内で行と列のインデックスを交換することで、行と列を反転させます。最後に、反転後の2次元配列を出力します。
これらの方法を使用すると、C言語で2次元配列の行と列を簡単に反転することができます。