C言語の配列を逆順にする方法は?

C言語の配列を逆に並べ替える方法にはいくつかあり、以下に一般的な2つの方法を示します。

  1. 追加の配列を使って反転
#include <stdio.h>

void reverseArray(int arr[], int size) {
    int i, j;
    int temp[size]; // 创建一个与原数组大小相同的临时数组

    // 将原数组的元素逆序复制到临时数组
    for (i = size - 1, j = 0; i >= 0; i--, j++) {
        temp[j] = arr[i];
    }

    // 将临时数组的元素复制回原数组
    for (i = 0; i < size; i++) {
        arr[i] = temp[i];
    }
}

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int size = sizeof(arr) / sizeof(arr[0]);

    reverseArray(arr, size);

    // 输出逆置后的数组
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}
  1. 二つのポインタを用いて反転する
#include <stdio.h>

void reverseArray(int arr[], int size) {
    int start = 0; // 指向数组首元素的指针
    int end = size - 1; // 指向数组末尾元素的指针

    while (start < end) {
        // 交换首尾指针所指向的元素
        int temp = arr[start];
        arr[start] = arr[end];
        arr[end] = temp;

        // 移动指针
        start++;
        end--;
    }
}

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int size = sizeof(arr) / sizeof(arr[0]);

    reverseArray(arr, size);

    // 输出逆置后的数组
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}

どの方法を使うにしても、いずれの方法でもC言語配列の逆転を実現できます。

bannerAds