Monday, February 17, 2020

swap two numbers

#include <stdio.h>
int main()
{
  int x, y, t;
  printf("Enter two integers\n");
  scanf("%d%d", &x, &y);
  printf("Before Swapping\nFirst integer = %d\nSecond integer = %d\n", x, y);
  t = x;
  x = y;
  y = t;
  printf("After Swapping\nFirst integer = %d\nSecond integer = %d\n", x, y);
  return 0;
}
The output of the program:
Enter two integers
23
45
Before Swapping
First integer = 23
Second integer = 45
After Swapping
First integer = 45
Second integer = 23

Swapping of two numbers without third variable

You can also swap two numbers without using third variable. In this case C program will be as follows:
#include <stdio.h>
int main()
{
   int a, b;
 
   printf("Input two integers (a & b) to swap\n");
   scanf("%d%d", &a, &b);
 
   a = a + b;
   b = a - b;
   a = a - b;
   printf("a = %d\nb = %d\n",a,b);
   return 0;
}
Output of program:

Swap numbers C program output
To understand the logic, choose the variables 'a' and 'b' as '7' and '9' respectively, and do according to the program. You can choose any other combination of numbers as well. Sometimes it's an excellent way to understand a program.

Swap function in C language

In this method we will make a function to swap numbers. We will use call by reference.
#include <stdio.h>
void swap(int*, int*); //Swap function declaration
int main()
{
   int x, y;
   printf("Enter the value of x and y\n");
   scanf("%d%d",&x,&y);
   printf("Before Swapping\nx = %d\ny = %d\n", x, y);
   swap(&x, &y);
   printf("After Swapping\nx = %d\ny = %d\n", x, y);
   return 0;
}
//Swap function definition
void swap(int *a, int *b)
{
   int t;
   t  = *b;
   *= *a;
   *= t;
}

Swap two numbers using pointers

#include <stdio.h>
int main()
{
   int x, y, *a, *b, temp;
   printf("Enter the value of x and y\n");
   scanf("%d%d", &x, &y);
   printf("Before Swapping\nx = %d\ny = %d\n", x, y);
 
   a = &x;
   b = &y;
 
   temp = *b;
   *b   = *a;
   *a   = temp;
   printf("After Swapping\nx = %d\ny = %d\n", x, y);
 
   return 0;
}

C programming code to swap using bit-wise XOR

#include <stdio.h>
int main()
{
  int x, y;
  scanf("%d%d", &x, &y);
  printf("x = %d\ny = %d\n", x, y);
  x = x ^ y;
  y = x ^ y;
  x = x ^ y;
  printf("x = %d\ny = %d\n", x, y);
  return 0;
}

No comments:

Post a Comment