Summary: In this tutorial, we will learn different ways to swap two numbers without using the third variable in the C programming language.
Method 1: Using + and – Operator
#include <stdio.h>
int main()
{
int a=5, b=6;
printf("Before Swap: \n");
printf("a: %d \n", a);
printf("b: %d \n", b);
a = a+b;
b = a-b; // (a+b)-b == a
a = a-b; // (a+b)-a == b
printf("After Swap: \n");
printf("a: %d \n", a);
printf("b: %d \n", b);
return 0;
}
Output:
Before Swap:a: 5
b: 6
After Swap:
a: 6
b: 5
In this method, we have used plus (+) and minus (-) operator to swap the values of a
and b
without declaring the third variable.
We add both numbers and assign a new value for each variable by subtracting the value of the other correspondent from the sum.
Method 2: Using * and / Operator
#include <stdio.h>
int main()
{
int a=4, b=3;
printf("Before Swap: \n");
printf("a: %d \n", a);
printf("b: %d \n", b);
a = a*b;
b = a/b; // (a*b)/b == a
a = a/b; // (a*b)/a == b
printf("After Swap: \n");
printf("a: %d \n", a);
printf("b: %d \n", b);
return 0;
}
Output:
Before Swap:a: 4
b: 3
After Swap:
a: 3
b: 4
This method applies the same approach as the previous method to swap two numbers but is implemented using the multiplication (*) and division (/) operator.
We multiply both the numbers and assign a new value for each variable by dividing the value of the other correspondent from the product.
Method 3: Using XOR (^) Operator
#include <stdio.h>
int main()
{
int a=12, b=9;
printf("Before Swap: \n");
printf("a: %d \n", a);
printf("b: %d \n", b);
a = a^b;
b = a^b;
a = a^b;
printf("After Swap: \n");
printf("a: %d \n", a);
printf("b: %d \n", b);
return 0;
}
Output:
Before Swap:a: 12
b: 9
After Swap:
a: 9
b: 12
In this method, we store XOR’s hybrid value (i.e. a^b
) in a and then we extract another correspondent value using the same expression,
i.e. Second Variable = (XOR Hybrid of Both) ^ (First Variable).
These were some of the ways we can swap two numbers without using any temporary variables in programming.