はじめに
2 つの数を入れ替えるとは、それらの値を入れ替えることを意味します。この実験では、一時変数を使用する方法、加減算、ビット演算子、乗除算など、さまざまな方法を使って C 言語で 2 つの数を入れ替える方法を学びます。
注:コーディングを練習し、gcc を使ってコンパイルして実行する方法を学ぶには、自分で
~/project/main.cファイルを作成する必要があります。
cd ~/project
## main.cを作成する
touch main.c
## main.cをコンパイルする
gcc main.c -o main
## mainを実行する
./main
一時変数を使用する
一時変数を使って 2 つの数を入れ替えるには、次の手順に従います。
x、y、tempの 3 つの変数を宣言する。xとyに値を代入する。xの値をtempに格納する。yの値をxに代入する。tempの値をyに代入する。xとyの値を表示する。
#include <stdio.h>
int main() {
int x = 5, y = 7, temp;
// 手順 3
temp = x;
// 手順 4 と 5
x = y;
y = temp;
// 手順 6
printf("入れ替え後、x = %d で y = %d\n", x, y);
return 0;
}
加算と減算を使用する
加算と減算を使って 2 つの数を入れ替えるには、次の手順に従います。
xとyに値を代入する。xとyを加算し、その結果をxに代入する。xからyの元の値を引き、yに代入する。xの新しい値からyの元の値を引き、xに代入する。xとyの値を表示する。
#include <stdio.h>
int main() {
int x = 5, y = 7;
// 手順 2 と 3
x = x + y;
y = x - y;
// 手順 4
x = x - y;
// 手順 5
printf("入れ替え後、x = %d で y = %d\n", x, y);
return 0;
}
ビット演算子を使用する
ビット演算子を使って 2 つの数を入れ替えるには、次の手順に従います。
xとyに値を代入する。xとyを排他的論理和(XOR)し、その結果をxに代入する。xの新しい値とyを排他的論理和し、その結果をyに代入する。xの新しい値とyを排他的論理和し、その結果をxに代入する。xとyの値を表示する。
#include <stdio.h>
int main() {
int x = 5, y = 7;
// 手順 2 と 3
x = x ^ y;
y = x ^ y;
// 手順 4
x = x ^ y;
// 手順 5
printf("入れ替え後、x = %d で y = %d\n", x, y);
return 0;
}
乗算と除算を使用する
乗算と除算を使って 2 つの数を入れ替えるには、次の手順に従います。
xとyに値を代入する。xとyを乗算し、その結果をxに代入する。xの新しい値をyで割り、その結果をyに代入する。xの新しい値をyの新しい値で割り、その結果をxに代入する。xとyの値を表示する。
#include <stdio.h>
int main() {
int x = 5, y = 7;
// 手順 2 と 3
x = x * y;
y = x / y;
// 手順 4
x = x / y;
// 手順 5
printf("入れ替え後、x = %d で y = %d\n", x, y);
return 0;
}
まとめ
この実験では、一時変数を使う方法、加算と減算、ビット演算子、乗算と除算の 4 つの異なる方法を使って 2 つの数を入れ替える方法を学びました。2 つの数を入れ替えることは、2 つの値の順序を変更したり、2 つの変数の値を入れ替える必要がある演算を行う際に、プログラミングで役立ちます。



