要素数が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を用意して、やりくりする。
- xの値をtempに保存
- xにyの値を代入
- 保存していたtempの値にyを代入