CB100

Notas, resueltos y tps de la materia Algoritmos y Estructuras de Datos
Index Commits Files Refs README
guias/1/ej23.cpp (1493B)
   1 #include <iostream>
   2 #include <iomanip>
   3 #include <vector>
   4 
   5 void vector_print(std::vector<int> v) {
   6     std::cout << "[";
   7     for(size_t i = 0; i < v.size(); ++i) {
   8         std::cout << v[i] << ((v.size() == i+1) ? "" : ", ");
   9     }
  10     std::cout << "]\n";
  11 }
  12 
  13 int vector_mean(std::vector<int> v) {
  14     int res = 0;
  15     for(size_t i = 0; i < v.size(); ++i)
  16         res += v[i];
  17 
  18     return ((float)res)/v.size();
  19 }
  20 
  21 int main (void) {
  22     int n, mean, total_mean;
  23     unsigned int len;
  24 
  25     std::cout << "Cantidad de lotes> ";
  26     std::cin >> len;
  27     if (std::cin.fail()) {
  28         std::cerr << "Solo se permite ingresar nĂºmeros\n";
  29         return -1;
  30     }
  31 
  32     std::vector<std::vector<int>> lista(len);
  33     for(size_t i = 0; i < len; ++i) {
  34         std::cout << "Ingrese numeros de lote `" << i
  35                   << "`\nAl finalizar el lote ingrese `0`\n";
  36         while(std::cin >> n) {
  37             std::cout << "\033[1A\033[2K";
  38             if(n == 0)
  39                 break;
  40                                           
  41             lista[i].push_back(n);
  42             vector_print(lista[i]);
  43         }
  44     }
  45 
  46     std::cout << std::endl;
  47     mean = total_mean = 0;
  48     for(size_t i = 0; i < len; ++i) {
  49         std::cout << std::setw(2) << i+1 << ": ";
  50         vector_print(lista[i]);
  51         std::cout << "-> mean: "
  52                   << (mean = vector_mean(lista[i])) << "\n\n";
  53         total_mean += mean;
  54     }
  55 
  56     std::cout << "=> total mean: " << total_mean << std::endl;
  57     return 0;
  58 }