配列どうしの要素を入れ替えるにはどうしたらいいですか
隣接する要素を入れ替えることで配列の要素の順序を交換できます。具体的には、配列を反復処理し、隣接する要素の場所を入れ替えます。
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void reverseArray(int arr[], int size) {
for (int i = 0; i < size / 2; i++) {
swap(&arr[i], &arr[size - i - 1]);
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
printf("Original array: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
reverseArray(arr, size);
printf("\nReversed array: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
return 0;
}
上のコードでは、swap() 関数は 2 つの整数の値を入れ替えるのに使用しています。また、reverseArray() 関数は配列の要素の順序を逆さにし、配列を繰り返し処理して、i 番目の要素と逆から数えて i 番目の要素の値を入れ替えることで、配列の逆転機能を実現しています。
上記のコードを実行すると、結果は次のようになります。
Original array: 1 2 3 4 5
Reversed array: 5 4 3 2 1
配列の要素の順序は正常に逆転されたことがわかります。