Computer >> Máy Tính >  >> Lập trình >> lập trình C

Làm thế nào để hoán đổi hai số mà không sử dụng biến thứ ba hoặc biến tạm thời bằng Lập trình C?

Với sự trợ giúp của các phép toán cộng và trừ, chúng ta có thể hoán đổi hai số từ vị trí bộ nhớ này sang vị trí bộ nhớ khác.

Thuật toán

Thuật toán được giải thích bên dưới -

BẮT ĐẦU

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.

Chương trình

Sau đây là chương trình C giải thích việc hoán đổi hai số mà không sử dụng biến thứ ba hoặc biến tạm thời -

#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;
}

Đầu ra

Bạn sẽ nhận được kết quả sau -

enter x and y values:20 30
After swap x=30 and y=20

Lưu ý - Chúng ta có thể hoán đổi hai số bằng cách sử dụng các toán tử nhân và chia và các toán tử XOR theo chiều bit mà không cần trợ giúp biến thứ ba.

Hãy xem xét một ví dụ khác giải thích cách hoán đổi hai số bằng cách sử dụng các toán tử nhân và chia.

Chương trình

Sau đây là chương trình C để chứng minh hoạt động tương ứng của hoán đổi hai số -

#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;
}

Đầu ra

Khi bạn thực hiện chương trình trên, bạn sẽ nhận được kết quả sau -

enter x and y values:120 250
After swap x=250 and y=120