【C言語入門】3つ目の変数(一時変数)を使わずに2つの数値を入れ替える方法
C言語では、加算と減算の演算を組み合わせることで、3つ目の変数(一時変数)を用意せずに、2つの数値の格納場所を入れ替えることができます。
アルゴリズム
手順は以下のとおりです。
START
Step 1: 2つの変数 x と y を宣言する。
Step 2: キーボードから2つの数値を読み込む。
Step 3: 数値を入れ替える。
// 加算と減算の演算を使って数値を交換します
i. x = x + y
ii. y = x - y
iii.x = x - y
Step 4: x と y の値を出力する。
プログラム(加減算による入れ替え)
以下は、一時変数を使わずに2つの数値を入れ替える方法を示すCプログラムです。
#include<stdio.h>
int main(){
int x,y;
printf("enter x and y values:");
scanf("%d%d",&x,&y);// 例として x=20、y=30 を入力
x=x+y;// x=20+30=50
y=x-y;// y=50-30=20
x=x-y;// x=50-20=30
printf("After swap x=%d and y=%d",x,y);
return 0;
}
実行結果
上記のプログラムを実行すると、次のような出力が得られます。
enter x and y values:20 30 After swap x=30 and y=20
仕組みのポイント
- x に y を加算することで、両方の値の合計を x に保持します。
- 合計から元の y を引けば元の x の値が残り、それを y に代入します。
- 最後に合計から新しい y(元の x)を引くことで、x に元の y の値が入ります。
補足: 一時変数を使わない方法は加減算だけではありません。乗算と除算、さらにはビット単位のXOR演算子を使っても同じことが可能です。ただし、乗除算方式では値が0の場合やオーバーフロー発生時に正しく動作しない点に注意が必要です。
プログラム(乗算・除算による入れ替え)
続いて、乗算と除算を使って2つの数値を入れ替える例を見てみましょう。
#include<stdio.h>
int main(){
int x,y;
printf("enter x and y values:");
scanf("%d%d",&x,&y);
x=x*y;
y=x/y;
x=x/y;
printf("After swap x=%d and y=%d",x,y);
return 0;
}
実行結果
上記のプログラムを実行すると、次のような出力が得られます。
enter x and y values:120 250 After swap x=250 and y=120
計算の流れ
- x = 120 × 250 = 30000
- y = 30000 ÷ 250 = 120(元の x の値)
- x = 30000 ÷ 120 = 250(元の y の値)
-
Pythonで2つの変数の値を交換する方法【一時変数あり・なしの2パターン】
はじめにプログラミングにおいて、2つの変数が持つ値を入れ替える「スワップ(交換)」処理は非常によく使われる基本操作です。この記事では、Pythonで変数を交換する2つの方法を、実際のコード例とともにわかりやすく解説します。方法1:一時変数を使う方法最も古典的で汎用的なのが、もう1つの一時変数(テンポラリ変数)を介して値を入れ替える方法です。他の多くのプログラミング言語でも同様の手法が使われます。>>> x = 10>>> y = 20>>> z = x # x の値を一時変数 z に退避>>> x = y # y
-
Pythonで自然数の合計を求める3つの方法【while文・for文・sum関数】
Pythonでは、自然数の合計を求める方法がいくつかあります。この記事では、whileループ、forループ、そして組み込み関数sum()を使った3つの方法を、具体的なコード例とともにわかりやすく解説します。 方法1:whileループを使う whileループを使用すると、変数iの値を1ずつ増やしながら、その値を累積的に加算していくことができます。以下の例では、最初の10個の自然数(1から10まで)の合計を計算しています。 s,i=0,0 n=10 while i<n: i=i+1 s=s+i print ("sum of first 10 natural num