CB100

Notas, resueltos y tps de la materia Algoritmos y Estructuras de Datos
Index Commits Files Refs README
guias/2/ej03.cpp (643B)
   1 #include <iostream>
   2 
   3 // by reference
   4 void numbers_swap_r(int &a, int &b) {
   5     a += b;
   6     b = a - b;
   7     a -= b;
   8 }
   9 
  10 
  11 // by pointers
  12 void numbers_swap_p(int *a, int *b) {
  13     *a += *b;
  14     *b  = *a - *b;
  15     *a -= *b;
  16 }
  17 
  18 void numbers_print(int a, int b) {
  19     std::cout << "a: " << a << std::endl;
  20     std::cout << "b: " << b << std::endl;
  21 }
  22 
  23 int main (void) {
  24     int a, b;
  25 
  26     a = 1;
  27     b = 2;
  28 
  29     numbers_print(a, b);
  30     std::cout << "// Swap by reference" << std::endl;
  31     numbers_swap_r(a, b);
  32     numbers_print(a, b);
  33 
  34     std::cout << "// Swap by pointer" << std::endl;
  35     numbers_swap_p(&a, &b);
  36     numbers_print(a, b);
  37 
  38     return 0;
  39 }