Resumen: Argumentos de punteros a funciones
Parte de la sección Logic & Flow del Journey de C de Coddy — lección 30 de 63.
Desafío
FácilEscribe 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:
- Crea una función llamada
findMinMaxque 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
- Dentro de la función
findMinMax, itera a través del arreglo para encontrar los valores mínimo y máximo - Usa el operador de desreferencia para almacenar el valor mínimo en la dirección apuntada por el puntero min
- Usa el operador de desreferencia para almacenar el valor máximo en la dirección apuntada por el puntero max
- En la función
main, lee un enteronque represente el número de elementos en el arreglo - Lee
nvalores enteros y almacénalos en un arreglo - Declara dos variables enteras
minValueymaxValuepara almacenar los resultados - Llama a la función
findMinMax, pasando el arreglo, su tamaño y las direcciones deminValueymaxValue - Imprime los resultados en el formato:
Minimum: [value]yMaximum: [value]
Por ejemplo, si la entrada es:
5
12 7 23 4 18Tu salida debería ser:
Minimum: 4
Maximum: 23Este 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
1Fundamentos de Punteros
¿Qué es un puntero?Declaración de punterosEl operador de dirección (&)El operador de desreferencia (*)Punteros NULLResumen: Conceptos básicos de punteros4Proyecto: Utilidad de texto simple
Descripción general del proyectoContar caracteres2Punteros y Arrays
Nombres de Arrays como PunterosElementos de un Array - PunterosAritmética de PunterosComparación de PunterosResumen: Recorrido de Arrays con Punteros5Punteros y funciones
Paso por valorPasar punteros a funcionesModificar variables mediante punterosUn ejemplo clásico: Intercambio (Swap)Pasar arrays a funcionesResumen: Argumentos de punteros a funciones3Arreglos de caracteres y cadenas
Cadenas como arreglos de charEl terminador nuloEntrada de cadenas con scanfUso de strlen()Uso de strcpy()Uso de strcat()Uso de strcmp()Resumen: Funciones básicas de cadenas