プログラミング+α学習ブログ

勉強したことの備忘録です。

要素数が7である配列の全要素を逆順に並べ替えるプログラム

#include <stdio.h>

int main(void)
{
    int i;
    int vx[7];
    
    for (i = 0; i < 7; i++) {   // 各要素に値を読み込む
        printf("vx[%d]:", i);
        scanf("%d", &vx[i]);
    }
    
    for (i = 0; i < 3; i++) {   // 配列を逆順に並べ替える
        int temp = vx[i];
        vx[i] = vx[6 - i];
        vx[6 - i] = temp;
    }
    
    for (i = 0; i < 7; i++) {
        printf("vx[%d]=%d\n", i, vx[i]);
    }
    
    return (0);
}

実行結果

vx[0]:58
vx[1]:32
vx[2]:17
vx[3]:46
vx[4]:22
vx[5]:73
vx[6]:69
vx[0]=69
vx[1]=73
vx[2]=22
vx[3]=46
vx[4]=17
vx[5]=32
vx[6]=58

配列を逆順に並べ替える方法

7つの要素を逆に並べ替えるには、
vx[0]とvx[6]を交換
→vx[1]とvx[5]を交換
→vx[2]とvx[4]を交換
という3回の交換を行う。

二つの値を交換する方法

二つの変数x,yの値を交換するためには、1つ余分な変数tempを用意して、やりくりする。

  1. xの値をtempに保存
  2. xにyの値を代入
  3. 保存していたtempの値にyを代入