fork download
  1. #include <stdio.h>
  2.  
  3. void number_swap(int* a, int* b) {
  4. *a ^= *b;
  5. *b ^= *a;
  6. *a ^= *b;
  7. }
  8.  
  9. void rotate_left(int* a, int* b, int* c) {
  10. *a ^= *b ^ *c;
  11. *c ^= *a ^ *b;
  12. *b ^= *a ^ *c;
  13. *a ^= *b ^ *c;
  14. }
  15.  
  16. void rotate_right(int* a, int* b, int* c, int* d) {
  17. *a ^= *b ^ *c ^ *d;
  18. *b ^= *a ^ *c ^ *d;
  19. *c ^= *a ^ *b ^ *d;
  20. *d ^= *a ^ *b ^ *c;
  21. *a ^= *b ^ *c ^ *d;
  22. }
  23.  
  24. int main() {
  25. // your code goes here
  26. int a = 7894;
  27. int b = 1989;
  28. printf("a = %d, b = %d\n", a, b);
  29. number_swap(&a, &b);
  30. printf("a = %d, b = %d\n", a, b);
  31.  
  32. int aa = 5;
  33. int bb = 8;
  34. int cc = 3;
  35. printf("aa = %d, bb = %d, cc = %d\n", aa, bb, cc);
  36. rotate_left(&aa, &bb, &cc);
  37. printf("aa = %d, bb = %d, cc = %d\n", aa, bb, cc);
  38.  
  39. int aaa = 1;
  40. int bbb = 3;
  41. int ccc = 5;
  42. int ddd = 7;
  43. printf("aaa = %d, bbb = %d, ccc = %d, ddd = %d\n", aaa, bbb, ccc, ddd);
  44. rotate_right(&aaa, &bbb, &ccc, &ddd);
  45. printf("aaa = %d, bbb = %d, ccc = %d, ddd = %d\n", aaa, bbb, ccc, ddd);
  46.  
  47. return 0;
  48. }
Success #stdin #stdout 0s 2168KB
stdin
Standard input is empty
stdout
a = 7894, b = 1989
a = 1989, b = 7894
aa = 5, bb = 8, cc = 3
aa = 8, bb = 3, cc = 5
aaa = 1, bbb = 3, ccc = 5, ddd = 7
aaa = 7, bbb = 1, ccc = 3, ddd = 5