Menu
Coddy logo textTech

Filtrado de datos de vectores

Parte de la sección Lógica y Flujo del Journey de C++ de Coddy. Lección 54 de 56.

challenge icon

Desafío

Fácil

Crea un programa que implemente un sistema de filtrado de datos para extraer números específicos de una colección. Este desafío pondrá a prueba tu capacidad para combinar vectores, iteración, lógica condicional y diseño de funciones para procesar datos de forma selectiva.

Se proporcionarán las siguientes entradas:

  • Un entero n que representa la cantidad de enteros de la colección
  • Después, n enteros que representan los números que se filtrarán
  • Un entero threshold que representa el valor mínimo para el filtrado

Tu programa debe:

  1. Crear una función llamada filterNumbers que reciba un std::vector<int> y un umbral entero como parámetros
  2. La función debe devolver un nuevo std::vector<int> que contenga únicamente los números del vector original que sean mayores que el umbral
  3. En la función principal, leer los valores de entrada y llenar un vector con los n enteros
  4. Llamar a la función filterNumbers con el vector llenado y el umbral
  5. Imprimir primero la cantidad de números filtrados y después imprimir cada número filtrado en una línea separada

Usa el siguiente formato exacto de salida:

Primera línea: cantidad de números filtrados:

Filtered count: [number_of_filtered_elements]

Después, cada número filtrado en líneas separadas:

[filtered_number_1]
[filtered_number_2]
...

Si ningún número pasa el filtro, imprime únicamente:

Filtered count: 0

Recuerda que tu función filterNumbers debe crear un vector nuevo y vacío, iterar por el vector de entrada mediante un bucle for basado en rangos y usar una instrucción if para comprobar cada número con respecto al umbral. Solo se deben agregar al vector de resultados los números que sean estrictamente mayores que el umbral, utilizando push_back(). La función debe devolver el vector nuevo que contenga únicamente los elementos filtrados.

Pruébalo tú mismo

#include <iostream>
#include <vector>
using namespace std;

// TODO: Crea la función filterNumbers aquí

int main() {
    // Leer la cantidad de números enteros
    int n;
    cin >> n;
    
    // Leer los números enteros en un vector
    vector<int> numbers;
    for (int i = 0; i < n; i++) {
        int num;
        cin >> num;
        numbers.push_back(num);
    }
    
    // Leer el umbral
    int threshold;
    cin >> threshold;
    
    // TODO: Llamar a la función filterNumbers y almacenar el resultado
    
    // TODO: Imprimir el conteo filtrado y los números según el formato requerido
    
    return 0;
}

Todas las lecciones de Lógica y Flujo

Practica por tu cuenta: Compilador de C++ online