Program of Swapping two numbers in C Language
Swapping of two numbers in C Language is the process in which the value of two variables is exchanged using some code. For example,
a = 5, b = 4
// After swapping:
a = 4, b = 5
We can swap two numbers in various ways as follows:
-
Swapping two variable values using a Temporary Variable
-
Swapping two variable values using Addition and Subtraction
-
Swapping two variable values using Bitwise Operator
-
Swapping two variable values using Multiplication and Division
1. Swapping two numbers in C using a temporary Variable
Let's start with the algorithm steps first,
Algorithm:
- declare three variables
x
, y
and temp
- take input in
x
and y
, say x = 5 and y = 7
- assign the value of
x
to temp
, say 5
- now temp = 5 and x = 5
- put the value of
y
in x
, so y = 7 and x = 7
- then, put the value of
temp
in y
, so temp = 5 and y = 5
Below is a program to swap two numbers using temporary variable.
#include<stdio.h>
#include<conio.h>
void main()
{
int x = 10, y = 15, temp;
temp = x;
x = y;
y = temp;
printf("x = %d and y = %d", x, y);
getch();
}
x = 15 and y = 10
2. Swapping two numbers using Addition and Subtraction
Let's start with the algorithm steps first,
Algorithm:
- Take input of the two numbers, say x = 5 and y = 7
- Store the sum of both the numbers in the first number(x = 5 + 7 so x = 12) and store the difference of both the numbers in the second number(y = 12 - 7, so y = 5).
- Then store their difference in the first number(x = 12 - 5 so x = 7) and print.
Below is a program to swap two numbers without using any temporary variable, and use addition and subtraction operator for doing it.
#include<stdio.h>
#include<conio.h>
void main()
{
int x = 10, y = 15;
x = x + y - (y = x);
printf("x = %d and y = %d",x,y);
getch();
}
x = 15 and y = 10
3. Swapping two numbers using Bitwise Operator
XOR gives output as 1 when two different bits are XORed and give 0 when two same bits are XORed. The XOR of two numbers x and y returns a number that has all the bits as 1 wherever bits of x and y differ. For example, XOR of 7 (0111) and 5 (0101) is (0010).
Algorithm:
- Input two numbers, say x = 5 and y = 7
- XOR the two numbers and store the result in the first number(x = 5 ^ 7 so x = 2)
- XOR the two numbers again and store the result in the second number (y = 2 ^ 7 so y = 5)
- XOR the two numbers again and store the result in the first number (x = 2 ^ 5 so x = 7)
Below is the program to swap two numbers using bitwise operator.
#include<stdio.h>
#include<conio.h>
void main()
{
int x = 6, y = 4;
x = x^y;
y = x^y;
x = x^y;
printf("x = %d and y = %d", x, y);
getch();
}
x = 4 and y = 6
4. Swapping two numbers using Multiplication and Division
Let's start with the algorithm steps first,
Algorithm:
- Take input of the two numbers, say x = 5 and y = 7
- Store the product of both the numbers in the first number(x = 5 * 7 so x = 35) and store the quotient of both the numbers in the second number(y = 35 / 7, so y = 5).
- Then store their difference in the first number(x = 35 / 5 so x = 7) and print.
Below is the program to swap two numbers using multiplication and division.
#include<stdio.h>
#include<conio.h>
void main()
{
int x = 6, y = 4;
x = x*y;
y = x/y;
x = x/y;
printf("x = %d and y = %d", x, y);
getch();
}
x = 4 and y = 6
Points to Remember
- In the algorithm using addition and division and XOR, if the values are very big, it can result in integer overflow.
- In the algorithm using division and multiplication, if one of the values is zero, the product will become zero and the algorithm will fail.