Ejercicio 01 — Funcion es_par(n) que devuelve 1 si n es par, 0 si no
Dificultad: verde · Módulo 04 (Funciones)
Enunciado
Funcion es_par(n) que devuelve 1 si n es par, 0 si no. Prueba con 1..10.
Diagrama de flujo

Cómo se resuelve
La idea de este módulo es sacar un cálculo de main y meterlo en su propia función. Aquí esa función es es_par(int n): recibe un entero y devuelve 1 si es par y 0 si es impar.
- Prototipo —
int es_par(int n);antes demain. Es la “firma” de la función (tipo que devuelve, nombre y tipo de parámetros) seguida de;. Le dice al compilador que la función existe, aunque la definas más abajo. - El cálculo — un número es par si al dividirlo entre 2 no sobra nada. El operador módulo
%da ese resto, así quen % 2 == 0es verdadero (vale1) cuandones par. Como en C un test de comparación ya vale1o0, basta conreturn n % 2 == 0;. - La llamada — en
main,es_par(i)dentro del?:elige el texto"par"o"impar".
Fíjate en que n es una copia: la función recibe el valor de i, no la variable i en sí. Puede hacer lo que quiera con n sin tocar el i del bucle.
Trampa típica: escribir return n % 2;. Eso devuelve el resto (0 o 1), justo al revés de lo que quieres: daría 0 (falso) para los pares. Si necesitas el sí/no, compara: n % 2 == 0.
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 01 — PRACTICA (rellena los TODO)
* Enunciado: Funcion es_par(n) que devuelve 1 si n es par, 0 si no. Prueba con 1..10.
* Dificultad: verde
* Compilar: gcc -std=c11 -Wall ej01_practica.c -o ej01 && ./ej01
*/
#include <stdio.h>
/* TODO: escribe el prototipo de es_par aqui */
int main(void) {
/* TODO: recorre los numeros del 1 al 10 con un bucle for */
/* TODO: para cada numero llama a es_par y muestra "par" o "impar" */
/* formato sugerido: "%2d: par\n" o "%2d: impar\n" */
return 0;
}
/* TODO: define la funcion es_par(int n)
* - recibe un entero n
* - devuelve 1 si n es par, 0 si es impar
* - pista: usa el operador % (modulo)
*/Solución — cópiala y ejecútala
/*
* Curso de C — Modulo 04: Funciones
* Ejercicio 01 — MODELO (resuelto)
* Enunciado: Funcion es_par(n) que devuelve 1 si n es par, 0 si no. Prueba con 1..10.
* Dificultad: verde
* Compilar: gcc -std=c11 -Wall ej01_modelo.c -o ej01 && ./ej01
*/
#include <stdio.h>
/* Prototipo */
int es_par(int n);
int main(void) {
for (int i = 1; i <= 10; i++) {
printf("%2d: %s\n", i, es_par(i) ? "par" : "impar");
}
return 0;
}
/* Devuelve 1 si n es par, 0 si es impar.
* Usamos el operador modulo: n % 2 == 0 <=> par. */
int es_par(int n) {
return n % 2 == 0;
}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.