1.Using
third variable
#include
<stdio.h>
int main()
{
int x, y, 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);
temp = x;
x =
y;
y =
temp;
printf("After Swapping\nx = %d\ny =
%d\n",x,y);
return 0;
}
2. without
third variable
#include
<stdio.h>
int main()
{
int a, b;
printf("Enter two integers 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;
}
3. 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;
}
4. using
call by reference
#include
<stdio.h>
void
swap(int*, int*);
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;
}
void
swap(int *a, int *b)
{
int temp;
temp = *b;
*b =
*a;
*a =
temp;
}
5. using
bitwise 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;
}