Home »
C Basic I/O programs

# How to swap two numbers without using a temporary variable using C program?

**C program to swap two integer numbers without using temporary variable**: Here, we will learn how to **swap numbers without taking help of another variable in C**?

**Given two integer numbers "a" and "b" and we have to swap their values without using any temporary variable.**

**Example:**

**Input:** a=10, b=20
**Output:** a=20, b=10

## Logic to swap number using temporary variable:

In this program, we are writing code that will **swap numbers without using other variable**.

*To swap numbers:*

**Step 1)** Add the value of a and b and assign the result in a.

a = a+b;

**Step 2)** To get the swapped value of b: Subtract the value of b from a (which was the sum of a and b).

b = a-b;

**Step 3)** To get the swapped value of a: Subtract the value of b from a.

a = a-b;

These are the above written three statements to **swap two numbers**:

//swapping numbers
a = a+b; //step 1
b = a-b; //step 2
a = a-b; //step 3

**Letâ€™s understand with the values:**

**Input:** a=10 and b=20
**Step1:** a = a+b → a= 10+20 → a=30
**Now:** a=30 and b=20
**Step2:** b = a-b → a= 30-20 → b=10
**Now:** a=30 and b=10
**Step3:** a = a-b → a= 30-10 → a=20
**Now:** a=20 and b=10
*Values are swapped now,*
**Output:** a=20 and b=10

### Program to swap numbers without using temporary variable in C

#include <stdio.h>
int main()
{
//variable declarations
int a,b;
//Input values
printf("Enter the value of a: ");
scanf("%d",&a);
printf("Enter the value of b: ");
scanf("%d",&b);
//Numbers before swapping
printf("Before swapping... a: %d, b: %d\n",a,b);
//swapping numbers
a = a+b; //step 1
b = a-b; //step 2
a = a-b; //step 3
//Numbers after swapping
printf("After swapping... a: %d, b: %d\n",a,b);
return 0;
}

Output

First run:
Enter the value of a: 10
Enter the value of b: 20
Before swapping... a: 10, b: 20
After swapping... a: 20, b: 10
Second run:
Enter the value of a: -100
Enter the value of b: -200
Before swapping... a: -100, b: -200
After swapping... a: -200, b: -100

In **first run**, the input values of a and b are **10** and **20** respectively, after swapping values of a and b are **20** and **10** (swapped values).

Same as **second run**, the input values of a and b are **-100** and **-200** respectively, after swapping values of a and b are **-200** and **-100** (swapped values).