[C言語]配列を反転して逆順に並び替えるには?

C言語

どうも、ちょげ(@chogetarou)です。

配列(array)を反転して逆順に並び替える方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

配列(array)を反転して逆順に並び替えるには、ループを使います。

まず、配列のインデックスを、先頭と後ろの両方からループします。

そして、ループ処理で、配列の「先頭からのループ変数のインデックスの要素」と「後ろからのループ変数のインデックスの要素」を入れ替えます。

//myArray=対象の配列, T=要素の型
int n = sizeof(myArray) / sizeof(myArray[0]);
for (int start = 0, end = n - 1; start < end; start++, end--)
{
        T temp = myArray[start];
        myArray[start] = myArray[end];
        myArray[end] = temp;
}

上記のループは、配列を反転して逆順に並び替えます。

使用例

#include <stdio.h>

int main(void){
    int nums[] = { 1, 2, 3, 4, 5 };
    int n = sizeof(nums) / sizeof(nums[0]);
    
    for (int start = 0, end = n - 1; start < end; start++, end--)
    {
        int temp = nums[start];
        nums[start] = nums[end];
        nums[end] = temp;
    }
    
    for (int i = 0; i < n; i++) {
        printf("%d ", nums[i]);
    }
    
    return 0;
}
出力:
5 4 3 2 1 

コメント

タイトルとURLをコピーしました