Ejercicio 02 — Funciones max(a,b) y min(a,b)
Dificultad: verde · Módulo 04 (Funciones)
Enunciado
Funciones max(a,b) y min(a,b). Pide dos enteros e imprime el mayor y el menor.
Diagrama de flujo

Cómo se resuelve
Aquí escribes dos funciones pequeñas, max(a, b) y min(a, b), cada una con su prototipo arriba. Cada una recibe dos enteros y devuelve uno solo.
maxcompara: sia > b,return a;corta ahí mismo y sale de la función; si no llega a esereturn, ejecutareturn b;. No hace faltaelse, porque unreturntermina la función de inmediato.mines la misma idea con el operador al revés.- En
mainlees dos enteros conscanf("%d %d", &x, &y)(los enteros sí llevan&, porquescanfnecesita la dirección donde guardar) y pasasxeya cada función.
El concepto clave es que x e y viajan por valor: dentro de max, los parámetros a y b son copias. La función devuelve un dato nuevo; no modifica tus variables originales.
Trampa típica: intentar que una sola función devuelva “el mayor y el menor a la vez”. Una función con return normal devuelve un único valor. Para dos resultados, lo natural aquí son dos funciones separadas (más adelante verás cómo devolver varios valores con punteros).
Para practicar — cópialo en Dev-C++
Pega este esqueleto y completa los TODO. Es la mejor forma de aprender: inténtalo antes de mirar la solución.
/*
* Curso de C — Modulo 04: Funciones
* Ejercicio 02 — PRACTICA (rellena los TODO)
* Enunciado: Funciones max(a,b) y min(a,b). Pide dos enteros e imprime el mayor y el menor.
* Dificultad: verde
* Compilar: gcc -std=c11 -Wall ej02_practica.c -o ej02 && ./ej02
*/
#include <stdio.h>
/* TODO: escribe los prototipos de max y min */
int main(void) {
int x, y;
/* TODO: pide dos enteros al usuario con printf + scanf */
/* TODO: imprime el resultado de max(x, y) y de min(x, y) */
return 0;
}
/* TODO: define int max(int a, int b)
* - devuelve el mayor de los dos
* - pista: un if simple basta
*/
/* TODO: define int min(int a, int b)
* - devuelve el menor de los dos
*/Solución — cópiala y ejecútala
/*
* Curso de C — Modulo 04: Funciones
* Ejercicio 02 — MODELO (resuelto)
* Enunciado: Funciones max(a,b) y min(a,b). Pide dos enteros e imprime el mayor y el menor.
* Dificultad: verde
* Compilar: gcc -std=c11 -Wall ej02_modelo.c -o ej02 && ./ej02
*/
#include <stdio.h>
/* Prototipos */
int max(int a, int b);
int min(int a, int b);
int main(void) {
int x, y;
printf("Introduce dos enteros: ");
scanf("%d %d", &x, &y);
printf("Max: %d\n", max(x, y));
printf("Min: %d\n", min(x, y));
return 0;
}
/* Devuelve el mayor de a y b */
int max(int a, int b) {
if (a > b) return a;
return b;
}
/* Devuelve el menor de a y b */
int min(int a, int b) {
if (a < b) return a;
return b;
}Cómo usarlo
Dev-C++ (Windows): Archivo → Nuevo → Código fuente, pega el código y pulsa F11 (compilar y ejecutar). Si ves los acentos raros en la consola, escribe chcp 65001 y vuelve a ejecutar.