C言語における1次元配列において、要素を交換する方法
C 言語では、次のような方法で 1 次元配列の要素を入れ替えることができます:
- tempという一時変数を用意して、入れ替えたい2つの要素の値をそれぞれtempと配列の対応する位置に代入し、最後にtempの値をもう片方の位置に代入する。
void swap(int arr[], int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
- XORによる値の交換:排他的論理和演算子(XOR)により、2つの変数の値を一時変数なしで入れ替えることができます。
void swap(int arr[], int i, int j) {
arr[i] = arr[i] ^ arr[j];
arr[j] = arr[i] ^ arr[j];
arr[i] = arr[i] ^ arr[j];
}
- 加算と減算を使用する:加算と減算を使用すると、追加の一時変数を使用せずに、2 つの変数の値を入れ替えることができます。
void swap(int arr[], int i, int j) {
arr[i] = arr[i] + arr[j];
arr[j] = arr[i] - arr[j];
arr[i] = arr[i] - arr[j];
}
これらの 3 つのメソッドはすべて、1 次元配列の要素のスワップに使用できます。場面と要件に応じて適切なメソッドを選択してください。