如何使用C编程在不使用第三个或一个临时变量的情况下交换两个数字?

借助加法和减法运算,我们可以将两个数字从一个存储位置交换到另一个存储位置。

算法

该算法解释如下-

开始

Step 1: Declare 2 variables x and y.
Step 2: Read two numbers from keyboard.
Step 3: Swap numbers.
//应用加减运算来交换数字。
   i. x=x+y
   ii. y=x-y
   iii. x=x-y
Step 4: Print x and y values.

示例

以下是C程序,该程序说明了在不使用第三个变量或临时变量的情况下交换两个数字的方法-

#include<stdio.h>
int main(){
   int x,y;
   printf("输入x和y值:");
   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;
}
输出结果

您将获得以下输出-

输入x和y值:20 30
After swap x=30 and y=20

注意:我们可以通过使用乘法和除法以及按位XOR运算符来交换两个数字,而无需使用第三变量帮助。

考虑另一个示例,该示例解释了如何使用乘法和除法运算符交换两个数字。

示例

以下是C程序来演示交换两个数字的各自功能-

#include<stdio.h>
int main(){
   int x,y;
   printf("输入x和y值:");
   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;
}
输出结果

当您执行上述程序时,您将获得以下输出-

输入x和y值:120 250
After swap x=250 and y=120