ด้วยความช่วยเหลือของการบวกและการลบ เราสามารถสลับตัวเลขสองตัวจากตำแหน่งหน่วยความจำหนึ่งไปยังตำแหน่งหน่วยความจำอื่นได้
อัลกอริทึม
อัลกอริทึมอธิบายไว้ด้านล่าง −
เริ่ม
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