Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

จะสลับตัวเลขสองตัวโดยไม่ใช้ตัวแปรตัวที่สามหรือตัวแปรชั่วคราวโดยใช้การเขียนโปรแกรม C ได้อย่างไร


ด้วยความช่วยเหลือของการบวกและการลบ เราสามารถสลับตัวเลขสองตัวจากตำแหน่งหน่วยความจำหนึ่งไปยังตำแหน่งหน่วยความจำอื่นได้

อัลกอริทึม

อัลกอริทึมอธิบายไว้ด้านล่าง −

เริ่ม

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