C Program to Swap two Numbers - GeeksforGeeks

07 May, 2020
Given two numbers, write a C program to swap the given numbers.
Input : x = 10, y = 20;
Output : x = 20, y = 10

Input : x = 200, y = 100
Output : x = 100, y = 200

The idea is simple
Assign x to a temp variable : temp = xAssign y to x : x = yAssign temp to y : y = temp
Assign x to a temp variable : temp = x
Assign y to x : x = y
Assign temp to y : y = temp
Let us understand with an example.
x = 100, y = 200
After line 1: temp = xtemp = 100
After line 2: x = yx = 200
After line 3 : y = tempy = 100
// C program to swap two variables#include <stdio.h>  int main(){    int x, y;    printf("Enter Value of x ");    scanf("%d", &x);    printf("\nEnter Value of y ");    scanf("%d", &y);      int temp = x;    x = y;    y = temp;      printf("\nAfter Swapping: x = %d, y = %d", x, y);    return 0;}
Output:
Enter Value of x 12

Enter Value of y 14

After Swapping: x = 14, y = 12 
How to write a function to swap?Since we want the local variables of main to modified by swap function, we must them using pointers in C.
// C program to swap two variables using a // user defined swap()#include <stdio.h>  // This function swaps values pointed by xp and ypvoid swap(int *xp, int *yp){    int temp = *xp;    *xp = *yp;    *yp = temp;}  int main(){    int x, y;    printf("Enter Value of x ");    scanf("%d", &x);    printf("\nEnter Value of y ");    scanf("%d", &y);    swap(&x, &y);    printf("\nAfter Swapping: x = %d, y = %d", x, y);    return 0;}
Output:
Enter Value of x 12

Enter Value of y 14

After Swapping: x = 14, y = 12 
How to do in C++?In C++, we can use references also.
// C++ program to swap two variables using a // user defined swap()#include <stdio.h>  // This function swaps values referred by // x and y,void swap(int &x, int &y){    int temp = x;    x = y;    y = temp;}  int main(){    int x, y;    printf("Enter Value of x ");    scanf("%d", &x);    printf("\nEnter Value of y ");    scanf("%d", &y);    swap(x, y);    printf("\nAfter Swapping: x = %d, y = %d", x, y);    return 0;}
Output:
Enter Value of x 12

Enter Value of y 14

After Swapping: x = 14, y = 12 
Is there a library function?We can use C++ library swap function also.
// C++ program to swap two variables using a // user defined swap()#include <bits/stdc++.h>using namespace std;  int main(){    int x, y;    printf("Enter Value of x ");    scanf("%d", &x);    printf("\nEnter Value of y ");    scanf("%d", &y);    swap(x, y);    printf("\nAfter Swapping: x = %d, y = %d", x, y);    return 0;}
Output:
Enter Value of x 12

Enter Value of y 14

After Swapping: x = 14, y = 12 
How to swap without using a temporary variable?
Samsung
Swap-Program
C Programs
C++ Programs
Mathematical
School Programming
Samsung
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
C Program to read contents of Whole File
Producer Consumer Problem in C
C / C++ Program for Dijkstra's shortest path algorithm | Greedy Algo-7
Program to calculate First and Follow sets of given grammar
time() function in C
C++ Program for QuickSort
C++ program for hashing with chaining
delete keyword in C++
cin in C++
Count substrings that contain all vowels | SET 2