How to swap two numbers without using third variable in C

6 Answers

0 votes
#include <stdio.h> 

int main(int argc, char **argv) 
{ 
    int a = 5, b = 13;
    
    a = a + b;
    b = a - b;
    a = a - b;
 
    printf("a = %d\nb = %d\n", a, b);
    
    return(0);
}


/*

run:

a = 13
b = 5

*/


answered May 27, 2015 by avibootz
0 votes
#include <stdio.h> 
 
int main(int argc, char **argv) 
{ 
    int a = 5, b = 13;
     
    a = a + b - (b = a);
  
    printf("a = %d\nb = %d\n", a, b);
     
    return(0);
}
 
 
/*
 
run:
 
a = 13
b = 5
 
*/

 



answered May 5, 2017 by avibootz
0 votes
#include <stdio.h> 
 
int main(int argc, char **argv) 
{ 
    int a = 5, b = 13;
     
    a = a + b, b = a - b, a = a - b;
  
    printf("a = %d\nb = %d\n", a, b);
     
    return(0);
}
 
 
/*
 
run:
 
a = 13
b = 5
 
*/

 



answered May 5, 2017 by avibootz
0 votes
#include <stdio.h> 
 
int main(int argc, char **argv) 
{ 
    int a = 5, b = 13;
     
    a = a ^ b;
    b = a ^ b;
    a = b ^ a;
  
    printf("a = %d\nb = %d\n", a, b);
     
    return(0);
}
 
 
/*
 
run:
 
a = 13
b = 5
 
*/

 



answered May 5, 2017 by avibootz
0 votes
#include <stdio.h> 
 
int main(int argc, char **argv) 
{ 
    int a = 5, b = 13;
     
    a = b - ~a - 1;
    b = a + ~b + 1;
    a = a + ~b + 1;
  
    printf("a = %d\nb = %d\n", a, b);
     
    return(0);
}
 
 
/*
 
run:
 
a = 13
b = 5
 
*/

 



answered May 5, 2017 by avibootz
0 votes
#include <stdio.h> 
  
int main(int argc, char **argv) 
{ 
    int a = 5, b = 13;
      
	a ^= b ^= a ^= b;
   
    printf("a = %d\nb = %d\n", a, b);
      
    return(0);
}
  
  
/*
  
run:
  
a = 13
b = 5
  
*/

 



answered Dec 23, 2018 by avibootz
...