2つの番号を交換する方法

一般に、2つの数値を交換するために、2つの数値の値を交換するための中間変数を定義します。これも、最も単純で理解しやすい方法です。しかし、中間変数を使用せずに2つの数値を交換することは可能ですか?答えはイエスです。

まず、中間変数を導入する方法について話しましょう。

コードは以下のように表示されます:

#include<stdio.h>
int main()
{
    
    
	int a=10;
	int b=20;
	int tmp=a;
	a=b;
	b=tmp;
	printf("%d %d\n",a,b);   
	return 0;
}

結果は次のとおりです。

ここに画像の説明を挿入

方法2:(数学演算と同様)

(1)コードは次のとおりです。

#include<stdio.h>
int main()
{
    
    
	int a=10;
	int b=20;
	a=a-b;
	b=a+b;
	a=b-a;
	printf("%d %d\n",a,b);
	return 0;
}

結果は次のとおりです。

ここに画像の説明を挿入

(2)方法2:

コードは以下のように表示されます:

#include<stdio.h>
int main()
{
    
    
	int a=10;
	int b=20;
	a=a+b;
	b=a-b;
	a=a-b;
	/*a=a-b;
	b=a+b;
	a=b-a;*/
	printf("%d %d\n",a,b);
	return 0;
}

結果は次のとおりです。

ここに画像の説明を挿入

方法3(まだわかりませんが、一般的な問題は正しく解決できます):

手順は次のとおりです。

#include<stdio.h>
int main()
{
	int a=10;
	int b=20;
	a=a^b;
	b=a^b;
	a=a^b;
	printf("%d %d\n",a,b);
	return 0;
}

結果は次のとおりです。

ここに画像の説明を挿入
個人的には、方法1はシンプルで理解しやすいと思います。
お役に立てれば幸いです。

おすすめ

転載: blog.csdn.net/Gunanhuai/article/details/88920346