# C++ FAQ - How to swap the two numbers without using temporary variable?

It is easy to swap two numbers using a temporary variable.

double a = 22.66;

double b = 55.62;
double t = 0;

t = a;
a = b;
b = t;

How about  swaping the numbers with out using a temporary variable. Look at the sample code given below:

## Source Code

#include <stdio.h>

#include <iostream>

#include <tchar.h>

int _tmain(int argc, _TCHAR* argv[])

{

// Swap the two numbers with out using temporary variables

double a = 22.66;

double b = 55.62;

std::cout << "Step1: " << a << "\t" << b << "\n";

a = a + b; // Get the sum of two numbers and assign it to a

std::cout << "Step2: " << a << "\t" << b << "\n";

b = a - b; // a (sum) - b would give you original value of a and assign it to b.

std::cout << "Step3: " << a << "\t" << b << "\n";

a = a - b; // a (sum) - b(currently holds the orinial value of a) would give you b and assign it to a.

std::cout << "Step4: " << a << "\t" << b << "\n";

return 0;

}

## Output

Step1: 22.66    55.62

Step2: 78.28    55.62

Step3: 78.28    22.66

Step4: 55.62    22.66