The following are the commonly used logic to swap two values. Approach 1: Swap using third (temporary) variable #include <stdio.h> int main(){ int x,y; scanf("%d%d",&x,&y); int temp = x; x = y; y = temp; printf("%d %d",x,y); } Approach 2: Swap using XOR operator #include <stdio.h> int main(){ int x,y; scanf("%d%d",&x,&y); x = x^y; y = x^y; //Now y = (x^y)^y = x. So y has value of x now x = x^y; //Now x = (x^y)^x = x printf("%d %d",x,y); } Approach 3: Swap using Addition and Subtraction #include <stdio.h> int main(){ int x,y; scanf("%d%d",&x,&y); x = x+y; //Assume x=5 and y=3. Now x=8, y=3 y = x-y; //Now x=8 and y=5 x = x-y; //Now x=3 and y=5 and hence swapped. printf("%d %d",x,y); } Approach 4: Swap using Multiplication and Division #include <stdio.h> int main(){ int x,y; scanf("%d%d",&x,&y); x = (x*y)/(y=x); printf("%d %d",x,y); }  

Various ways to swap two numbers (integers) 2 months ago

The following are the commonly used logic to swap two values.

Approach 1: Swap using third (temporary) variable

#include <stdio.h>

int main(){
   int x,y;
   scanf("%d%d",&x,&y);
   int temp = x;
   x = y;
   y = temp;
   printf("%d %d",x,y);
}

Approach 2: Swap using XOR operator

#include <stdio.h>

int main(){
   int x,y;
   scanf("%d%d",&x,&y);
   x = x^y;
   y = x^y; //Now y = (x^y)^y = x. So y has value of x now
   x = x^y; //Now x = (x^y)^x = x  
   printf("%d %d",x,y);
}

Approach 3: Swap using Addition and Subtraction

#include <stdio.h>

int main(){
   int x,y;
   scanf("%d%d",&x,&y);
   x = x+y; //Assume x=5 and y=3. Now x=8, y=3
   y = x-y; //Now x=8 and y=5
   x = x-y; //Now x=3 and y=5 and hence swapped.
   printf("%d %d",x,y);
}

Approach 4: Swap using Multiplication and Division

#include <stdio.h>

int main(){
   int x,y;
   scanf("%d%d",&x,&y);
   x = (x*y)/(y=x); 
   printf("%d %d",x,y);
}