# Write a Program to Swap two Numbers without using Third Variable in C

If you’re a beginner in programming or just learning C language, swapping two numbers without using a third variable may seem like a daunting task. However, it’s a simple process that can be achieved with just a few lines of code.

## Why Swap Two Numbers Without a Third Variable?

Before we dive into the code, let’s first understand why we would want to swap two numbers without using a third variable. The answer is simple: to save memory space. In certain applications, every byte of memory matters, and using an extra variable to swap two numbers may not be practical. Therefore, we need a way to swap the numbers without using any extra memory.

## Algorithm to Swap Two Numbers

To swap two numbers without using a third variable, we can use the following algorithm:

1. Read the values of the two numbers, A and B, from the user.
2. Add A and B and store the result in A.
3. Subtract B from A and store the result in B.
4. Subtract A from B and store the result in A.
5. Print the swapped values of A and B.

Let’s implement this algorithm in C.

## Code to Swap Two Numbers Without Using a Third Variable in C

``````#include <stdio.h>

int main() {
int num1, num2;
printf("Enter two numbers: ");
scanf("%d %d", &num1, &num2);

// swapping without using third variable
num1 = num1 + num2;
num2 = num1 - num2;
num1 = num1 - num2;

printf("After swapping, num1 = %d, num2 = %d", num1, num2);
return 0;
}
``````

Let’s understand how this code works.

First, we read two integers `num1`, `num2` from the user using `scanf()`. Then, we perform the swap using the algorithm mentioned above. Note that in line 8, we add `num1` and `num2` and store the result in `num1`. This is because `num1` now contains the sum of the two numbers, which we can use to find the difference between them.

Next, we subtract `num2` from `num1` and store the result in `num2`. This is because `num2` now contains the difference between the sum of the two numbers and the original value of `num2`, which is equal to the original value of `num1`.

Finally, we subtract `num1` from `num2` and store the result in `num1`. This is because `num1` now contains the difference between the sum of the two numbers and the original value of `num1`, which is equal to the original value of `num2`.

After the swap is complete, we print the swapped values of `num1` and `num2` using `printf()`.

## Conclusion

Swapping two numbers without using a third variable is a simple and efficient process that can save memory space in certain applications. In C, we can achieve this by using a simple algorithm and a few lines of code. We hope this article has helped you understand how to swap two numbers without using a third variable in C.