C++ Examples

C++ - Swap two numbers



There are two common ways to swap the value of two variables:

  • Swap the value of two variables using a temporary variable
  • Swap the value of two variables without using temporary variable

Method 1: Swap the value of two variables using a temporary variable

In the example below, the initial value of variables x and y are 10 and 25. A temporary variable called temp is created to store the value of x and then the value of y is assigned to x. Finally, value of temp (which stores values of x) is assigned to variable y. The final value of variables x and y after swap are 25 and 10 respectively.

#include <iostream>
using namespace std;

static void swap(int, int);

static void swap(int x, int y) {
  cout<<"Before Swap.\n";
  cout<<"x = "<<x<<"\n";
  cout<<"y = "<<y<<"\n";

  //Swap technique
  int temp = x;
  x = y;
  y = temp;

  cout<<"After Swap.\n";
  cout<<"x = "<<x<<"\n";
  cout<<"y = "<<y<<"\n";
}

int main() {
  swap(10, 25);
  return 0;
}

The above code will give the following output:

Before Swap.
x = 10
y = 25
After Swap.
x = 25
y = 10

Method 2: Swap the value of two variables without using temporary variable

+ operator is used to swap the value of two variables. In this method no temporary variable is used. See the example below for syntax.

#include <iostream>
using namespace std;

static void swap(int, int);

static void swap(int x, int y) {
  cout<<"Before Swap.\n";
  cout<<"x = "<<x<<"\n";
  cout<<"y = "<<y<<"\n";

  //Swap technique
  x = x + y;
  y = x - y;
  x = x - y;

  cout<<"After Swap.\n";
  cout<<"x = "<<x<<"\n";
  cout<<"y = "<<y<<"\n";
}

int main() {
  swap(10, 25);
  return 0;
}

The above code will give the following output:

Before Swap.
x = 10
y = 25
After Swap.
x = 25
y = 10

Similarly, others operators can also be used in this method. Please see the page: C++ - Swap two numbers without using Temporary Variable.