ด้วยความช่วยเหลือของการบวกและการลบ เราสามารถสลับตัวเลขสองตัวจากตำแหน่งหน่วยความจำหนึ่งไปยังตำแหน่งหน่วยความจำอื่นได้
อัลกอริทึม
อัลกอริทึมอธิบายไว้ด้านล่าง −
เริ่ม
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.
โปรแกรม
ต่อไปนี้เป็นโปรแกรม C ซึ่งอธิบายการสลับตัวเลขสองตัวโดยไม่ต้องใช้ตัวแปรที่สามหรือตัวแปรชั่วคราว -
#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
หมายเหตุ − เราสามารถสลับตัวเลขสองตัวโดยใช้ตัวดำเนินการการคูณและการหารและตัวดำเนินการ XOR ระดับบิตโดยไม่ต้องใช้ตัวแปรตัวที่สาม
ลองพิจารณาอีกตัวอย่างหนึ่งที่อธิบายวิธีการสลับตัวเลขสองตัวโดยใช้ตัวดำเนินการการคูณและการหาร
โปรแกรม
ต่อไปนี้คือโปรแกรม 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