# 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).

What's New

Top Interview Coding Problems/Challenges!

Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates