如何在不使用第三个变量或临时变量的情况下,用 C 语言编程交换两个数字?
cserver side programmingprogramming
借助加减运算,我们可以将两个数字从一个内存位置交换到另一个内存位置。
算法
算法解释如下 −
开始
步骤 1:声明两个变量 x 和 y。 步骤 2:从键盘读取两个数字。 步骤 3:交换数字。 //应用加减运算交换数字。 i. x=x+y ii. y=x-y iii. x=x-y 步骤 4:打印 x 和 y 的值。
程序
以下 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("交换 x=%d 和 y=%d 后",x,y); return 0; }
输出
您将得到以下输出 −
输入 x 和 y 的值:20 30 交换 x=30 和 y=20 后
注意 − 我们可以使用乘法、除法和按位异或运算符来交换两个数字,而无需借助第三个变量。
考虑另一个示例,该示例解释了如何使用乘法和除法运算符交换两个数字。
程序
以下 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("交换后 x=%d 且 y=%d",x,y); return 0; }
输出
执行上述程序,将得到以下输出 −
输入 x 和 y 值:120 250 交换后 x=250 且 y=120