Menu
Coddy logo textTech

Resumen: Argumentos de punteros a funciones

Parte de la sección Logic & Flow del Journey de C de Coddy — lección 30 de 63.

challenge icon

Desafío

Fácil

Escribe un programa en C que implemente una función para encontrar tanto el valor mínimo como el máximo en un arreglo utilizando argumentos de puntero. Tu programa debe:

  1. Crea una función llamada findMinMax que tome cuatro parámetros:
    • Un arreglo de enteros
    • El tamaño del arreglo
    • Un puntero a un entero para almacenar el valor mínimo
    • Un puntero a un entero para almacenar el valor máximo
  2. Dentro de la función findMinMax, itera a través del arreglo para encontrar los valores mínimo y máximo
  3. Usa el operador de desreferencia para almacenar el valor mínimo en la dirección apuntada por el puntero min
  4. Usa el operador de desreferencia para almacenar el valor máximo en la dirección apuntada por el puntero max
  5. En la función main, lee un entero n que represente el número de elementos en el arreglo
  6. Lee n valores enteros y almacénalos en un arreglo
  7. Declara dos variables enteras minValue y maxValue para almacenar los resultados
  8. Llama a la función findMinMax, pasando el arreglo, su tamaño y las direcciones de minValue y maxValue
  9. Imprime los resultados en el formato: Minimum: [value] y Maximum: [value]

Por ejemplo, si la entrada es:

5
12 7 23 4 18

Tu salida debería ser:

Minimum: 4
Maximum: 23

Este desafío demuestra la poderosa técnica de usar múltiples argumentos de puntero para devolver múltiples valores desde una sola llamada a una función, permitiendo que la función modifique variables en el alcance de la función que la llama.

Pruébalo tú mismo

#include <stdio.h>

// TODO: Escribe tu función findMinMax aquí

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    int minValue, maxValue;
    
    // TODO: Llama a la función findMinMax aquí
    
    printf("Minimum: %d\n", minValue);
    printf("Maximum: %d\n", maxValue);
    
    return 0;
}

Todas las lecciones de Logic & Flow