How to swap numbers in C++ program?
In this tutorial, we will show you how to swap numbers in C++ in the following ways:
- By using the swap() bulit-in function
- By using the temporary variable
- Using + and –
- Using * and /
First Way – Using a built-in swap function
C++ Standard Template Library has a built-in function (std::swap) that you may use to swap two numbers.
You simply provide two numbers to swap() function i.e.
In this way, you do not need a third variable.
An example of using the C++ swap function
The example below shows using the swap() function to interchange two variable values by using swap() function:
#include <bits/stdc++.h> using namespace std; int main() { int x = 35, y = 75; cout << "Value of x before swap: " <<x << "\n"; cout << "Value of y before swap: " <<y << "\n"; //Using swap() function swap two values swap(x, y); cout << "####################################\n"; cout << "Value of x after swap: " <<x << "\n"; cout << "Value of y after swap: " <<y << "\n"; return 0; }
Output:
Taking user input for swapping two numbers program
In this program, the user is asked to enter two numbers to be swapped.
- The first entered number is assigned to variable x.
- The second number is assigned to the variable y.
- The swap() function is used
- The swapped numbers are displayed as follows:
#include <bits/stdc++.h> using namespace std; int main() { int x,y; cout << "Enter first number: "; cin >> x; cout << "Enter second number: "; cin >> y; cout << "####################################\n"; cout << "Value of x before swap: " <<x << "\n"; cout << "Value of y before swap: " <<y << "\n"; //Using swap() function swap two values swap(x, y); cout << "####################################\n"; cout << "Value of x after swap: " <<x << "\n"; cout << "Value of y after swap: " <<y << "\n"; return 0; }
A sample output:
Value of y before swap: 75
####################################
Value of x after swap: 75
Value of y after swap: 35
Second way: Using a temporary third variable technique to swap numbers
As the target is to swap two variable values.
- We can use the third variable to temporarily hold the first variable value.
- Then copy the contents of the second variable to the first.
- Finally, copy the contents of the third variable (temporary) to the second variable.
See this in action below:
#include <iostream> using namespace std; int main() { int x,y,z; cout << "Enter first number: "; cin >> x; cout << "Enter second number: "; cin >> y; cout << "####################################\n"; cout << "Numbers Before swapping" << endl; cout << "x = " << x << "\n y = " << y << endl; z = x; x = y; y = z; cout << "\nNumbers After swapping" << endl; cout << "x = " << x << "\n y = " << y << endl; return 0; }
Sample Output:
In the program,
- The user is asked to two numbers to swap
- Numbers are assigned to variables x and y
- A temporary variable z is used to hold the value of x
Swap numbers without a third variable by + and –
In this technique, we will perform addition and subtraction to swap the numbers of two variables.
Suppose:
x= 10;
y= 20
x = x + y = 30
y = x – y i.e. (30-20) = 10
x = x – y i.e. (30 – 10) = 20
Done?
Let us see this in C++ program:
#include <iostream> using namespace std; int main() { int x,y; cout << "Enter first number: "; cin >> x; cout << "Enter second number: "; cin >> y; cout << "####################################\n"; cout<<"Numbers Before swap\n x= "<<x<<"\n y= "<<y<<endl; x=x+y; y=x-y; x=x-y; cout << "####################################\n"; cout<<"Numbers After swap\n x= "<<x<<"\n y= "<<y<<endl; return 0; }
A sample output:
Using * and / for number swapping example
You may also use division and multiplication to swap numbers without using the built-in swap function or a third temporary variable.
Again, let us suppose:
x = 10
y = 20
The logic to achieve the result is:
x = x * y: (10*20)= 200
y = x/y: (200/20) = 10
x = x/b : (200/10) = 10
Swapped?
C++ program to swap by /* technique
#include <iostream> using namespace std; int main() { int x,y; cout << "Enter first number: "; cin >> x; cout << "Enter second number: "; cin >> y; cout << "####################################\n"; cout<<"Numbers Before swap\n x= "<<x<<"\n y= "<<y<<endl; x=x*y; y=x/y; x=x/y; cout << "####################################\n"; cout<<"Numbers After swap\n x= "<<x<<"\n y= "<<y<<endl; return 0; }
Sample output as we entered two numbers: