Approach to Swap Two Numbers in C
There are multiple approaches to swap two numbers in c, and here are the ones that will be discussed in this article:
1. Swapping Two Numbers Using a Third Variable or Temporary Variable
This is the most straightforward and commonly used method to swap two numbers. First, a temporary third variable is introduced to hold the value of one variable while swapping. For example, the value of A is stored in the temporary variable C, then A is assigned the value of B, and finally, B is given the stored value. It’s really simple to exchange values this way.
2. Swap Without Third Variable
This approach relies on a set of arithmetic operations, either addition and subtraction or multiplication and division. For example, the sum of A and B is stored in A, and the original values are derived back using simple equations. This method avoids using extra memory.
3. Swapping Function in C
In this method, a function is written to encapsulate the swapping logic, making the code reusable. You will pass two variables as arguments, and the function swaps their values. This approach makes your program much clearer.
4. Swapping Two Numbers Using Pointers in C
Pointers add another layer of flexibility. Here, instead of passing variables directly, their memory addresses are passed to a function which uses these addresses to manipulate the variable values directly.
Now, let’s take a look at the code examples for each of the approaches described above:
C Program to Swap Two Numbers Using Third Variable
In this, we swap two numbers using third variable:
#include <stdio.h>
int main()
{
int var1, var2, temp;
printf("Enter two integers \n");
scanf("%d%d", &var1, &var2);
printf("Before Swappingn First variable = %d\nSecond variable = %d \n", var1, var2);
temp = var1;
var1 = var2;
var2 = temp;
printf("After Swappingn First variable = %d\nSecond variable = %d\n", var1, var2);
return 0;
}
Output:
Enter two integers
2 3
Before Swapping, First variable = 2
Second variable = 3
After Swapping, First variable = 3
Second variable = 2
In the above program, the temp variable is assigned the value of the first variable. Then, the value of the first variable is assigned to the second variable.
Finally, the temp (which holds the initial value of the first) is assigned to the second. This completes the swapping process.
C Program to Swap Two Numbers Without Using Third Variable
Now let’s look at the program to swap two numbers without a third variable:
We can swap two numbers without using a third variable. There are three common ways to swap two numbers without using a third variable:
1. By Addition and Subtraction (+ and -)
#include <stdio.h>
int main()
{
int var1, var2, temp;
printf("Enter two integers\n");
scanf("%d%d", &var1, &var2);
printf("Before Swapping\nFirst variable = %d\nSecond variable = %d\n", var1, var2);
var1 = var1 + var2;
var2 = var1 - var2;
var1 = var1 - var2;
printf("After Swapping\nFirst variable = %d\nSecond variable = %d\n", var1, var2);
return 0;
}
Output:
Enter two integers
5 6
Before Swapping
First variable = 5
Second variable = 6
After Swapping
First variable = 6
Second variable = 5
2. By Multiplication and Division (* and /)
#include <stdio.h>
int main() {
int Var1, Var2;
printf("Enter two integers:\n");
scanf("%d%d", &Var1, &Var2);
printf("Before swapping:\nVar1 = %d\nVar2 = %d\n", Var1, Var2);
// Ensure Var2 is not zero to avoid division by zero
if (Var2 != 0) {
// Swap logic
Var1 = Var1 * Var2;
Var2 = Var1 / Var2;
Var1 = Var1 / Var2;
printf("After swapping:\nVar1 = %d\nVar2 = %d\n", Var1, Var2);
} else {
printf("Swapping not possible with zero using this method.\n");
}
return 0;
}
Output:
Enter two integers:
3 6
Before swapping:
Var1 = 3
Var2 = 6
After swapping:
Var1 = 6
Var2 = 3
3. The bitwise XOR operator can also be used to swap two variables.
#include <stdio.h>
int main() {
int Var1, Var2;
printf("Enter two integers:\n");
scanf("%d%d", &Var1, &Var2);
printf("Before swapping:\nVar1 = %d\nVar2 = %d\n", Var1, Var2);
// Swap logic using XOR
Var1 = Var1 ^ Var2;
Var2 = Var1 ^ Var2;
Var1 = Var1 ^ Var2;
printf("After swapping:\nVar1 = %d\nVar2 = %d\n", Var1, Var2);
return 0;
}
Output:
Enter two integers:
2 5
Before swapping:
Var1 = 2
Var2 = 5
After swapping:
Var1 = 5
Var2 = 2
C Program to Swap Two Numbers Using Pointers
Here’s the program for swapping of two numbers in c using pointers:
#include <stdio.h>
int main()
{
int var1, var2, *num1, *num2, temp;
printf("Enter the value of var1 and var2\n");
scanf("%d%d", &var1, &var2);
printf("Before Swapping\nvar1 = %d\nvar2 = %d\n", var1, var2);
num1 = &var1;
num2 = &var2;
temp = *num2;
*num2 = *num1;
*num1 = temp;
printf("After Swapping\nvar1 = %d\nvar2 = %d\n", var1, var2);
return 0;
}
Output:
Enter the value of var1 and var2
1 2
Before Swapping
var1 = 1
var2 = 2
After Swapping
var1 = 2
var2 = 1
C Program to Swap Two Numbers Using Functions
Now let’s take a look at the c program to swap two numbers using functions:
void swap(int *num1, int *num2)
{
int temp = *num1;
*num1 = *num2;
*num2 = temp;
}
int main()
{
int var1, var2;
printf("Enter Value of var1 ");
scanf("%d", &var1);
printf("\nEnter Value of var2 ");
scanf("%d", &var2);
swap(&var1, &var2);
printf("\nAfter Swapping: var1 = %d, var2 = %d", var1, var2);
return 0;
}
Output:
Enter the value of var1 and var2
5 7
Before Swapping
var1 = 5
var2 = 7
After Swapping
var1 = 7
var2 = 5
C Program to Swap Two Numbers Using One Line Expression
The one-line approach does not need a temporary variable:
#include <stdio.h>
int main() {
int var1, var2;
printf("Enter two integers:\n");
scanf("%d%d", &var1, &var2);
printf("Before swapping:\nVar1 = %d\nVar2 = %d\n", var1, var2);
// One-line swap using arithmetic operations
var1 = (var1 + var2) - (var2 = var1);
printf("After swapping:\nVar1 = %d\nVar2 = %d\n", var1, var2);
return 0;
}
Output:
Enter two integers:
2 8
Before swapping:
Var1 = 2
Var2 = 8
After swapping:
Var1 = 8
Var2 = 2
Conclusion
As you can see, the c program to swap two numbers can be written in different ways. You can derive the same result from a third variable, pointers or arithmetic operations. It’s important to practice these codes to build your foundational skills. If you’re a student starting out, learning different ways to approach a problem is critical to building a successful career in software programming. To be job-ready, take up a course such as CCBP 4.0 Academy and build all the necessary skills to transition directly into a role as a software professional.
Boost Your Placement Chances by Learning Industry-Relevant Skills While in College!
Explore ProgramFrequently Asked Questions
1. Can I swap numbers in C without using a third variable?
Yes, you can use arithmetic operations like addition and subtraction or multiplication and division to swap values.
2. Does C have a swap command?
No, there is no standard command to swap variables in C.
3. What concepts are used to swap numbers in c?
Swapping numbers uses variables, pointers, functions, arithmetic operations and temporary variables in C.
4. What are some real-world applications of swapping two numbers in C?
Swapping is used in sorting algorithms, memory optimization tasks, and situations where data needs to be rearranged or exchanged between variables.
5. Which is the best approach to swap variables?
The best approach depends on the problem. Using the third variable is the simplest method. If memory has to be saved, swapping without a third variable and bitwise XOR works. Pointers work well for large data structures.