ホームページ  >  記事  >  バックエンド開発  >  3 番目の変数または一時変数を使用せずに C プログラミングで 2 つの数値を交換するにはどうすればよいですか?

3 番目の変数または一時変数を使用せずに C プログラミングで 2 つの数値を交換するにはどうすればよいですか?

WBOY
WBOY転載
2023-09-23 20:09:091025ブラウズ

3 番目の変数または一時変数を使用せずに C プログラミングで 2 つの数値を交換するにはどうすればよいですか?

加算と減算の演算を通じて、あるメモリ位置から別のメモリ位置に 2 つの数値を交換できます。

アルゴリズム

以下はアルゴリズムの説明です-

Start

Step 1: Declare 2 variables x and y.
Step 2: Read two numbers from keyboard.
Step 3: Swap numbers.
//Apply addition and subtraction operations to swap the numbers.
   i. x=x+y
   ii. y=x-y
   iii. x=x-y
Step 4: Print x and y values.

Program

以下はCプログラムです。 3 番目の変数や一時変数を使用せずに 2 つの数値を交換する方法を説明します。

#include<stdio.h>
int main(){
   int x,y;
   printf("enter x and y values:");
   scanf("%d%d",&x,&y);// lets take x as 20 and y as 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

Note - 乗算、除算、およびビットごとの XOR 演算子を使用して、3 番目の変数を使用せずに 2 つの数値を交換できます。

乗算演算子と除算演算子を使用して 2 つの数値を交換する方法を説明する別の例を考えてみましょう。

プログラム

次は、2 つの数値を交換する対応する関数を示す C プログラムです。

#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

以上が3 番目の変数または一時変数を使用せずに C プログラミングで 2 つの数値を交換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。