1 #include <iostream> 2 #include <vector> 3 4 void vector_print(std::vector<int> v) { 5 std::cout << "["; 6 for(size_t i = 0; i < v.size(); ++i) { 7 std::cout << v[i] << ((v.size() == i+1) ? "" : ", "); 8 } 9 std::cout << "]\n"; 10 } 11 12 void vector_log(std::vector<int> v) { 13 int min, max; 14 size_t min_pos, max_pos, min_occ, max_occ; 15 16 min = max = v[0]; 17 min_pos = max_pos = min_occ = max_occ = 0; 18 for(size_t i = 0; i < v.size(); ++i) { 19 if(v[i] < min) { 20 min = v[i]; 21 min_pos = i; 22 min_occ = 0; 23 } 24 if(v[i] > max) { 25 max = v[i]; 26 max_pos = i; 27 max_occ = 0; 28 } 29 30 min_occ += (min == v[i]) ? 1 : 0; 31 max_occ += (max == v[i]) ? 1 : 0; 32 } 33 34 std::cout << "* min `" << min << "` en posición `" << min_pos 35 << "` (" << min_occ << " ocurrencia)\n" 36 << "* max `" << max << "` en posición `" << max_pos 37 << "` (" << max_occ << " ocurrencia)\n"; 38 } 39 40 int main (void) { 41 int n; 42 unsigned int len; 43 std::vector<int> lista; 44 45 std::cout << "Largo de la lista> "; 46 std::cin >> len; 47 if (std::cin.fail()) { 48 std::cerr << "Solo se permite ingresar números\n"; 49 return -1; 50 } 51 52 while(lista.size() < len) { 53 std::cout << lista.size() << "> "; 54 std::cin >> n; 55 std::cout << "\033[1A\033[2K"; // Borra el caracter ingresado 56 57 if (std::cin.fail()) { 58 std::cout << "Solo se permite ingresar números\n"; 59 return -1; 60 } 61 62 lista.push_back(n); 63 if(lista.size() > 1) 64 std::cout << "\033[1A\033[2K"; // Borra el caracter ingresado 65 66 vector_print(lista); 67 } 68 69 vector_log(lista); 70 71 return 0; 72 }
