If else en C: ejercicios resueltos con condicionales anidadas

If else en C: ejercicios resueltos

Si buscas ejercicios condicionales en C, esta guía reúne casos típicos con if, if else, if else if y condicionales anidadas.

La clave es aprender a escribir decisiones claras y evitar ramas innecesarias.

Enunciado

Resuelve estos 4 mini ejercicios:

  1. clasificar un número como positivo, negativo o cero,
  2. convertir una nota numérica en calificación por rangos,
  3. decidir si un año es bisiesto,
  4. validar acceso con dos condiciones lógicas.

Solución en C

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <stdio.h>

void clasificar_numero(int n) {
    if (n > 0) {
        printf("%d es positivo\n", n);
    } else if (n < 0) {
        printf("%d es negativo\n", n);
    } else {
        printf("%d es cero\n", n);
    }
}

const char *calificacion(int nota) {
    if (nota >= 90) return "Sobresaliente";
    else if (nota >= 70) return "Notable";
    else if (nota >= 50) return "Aprobado";
    else return "Suspenso";
}

int es_bisiesto(int anio) {
    if (anio % 400 == 0) return 1;
    if (anio % 100 == 0) return 0;
    if (anio % 4 == 0) return 1;
    return 0;
}

int acceso_permitido(int edad, int tiene_autorizacion) {
    if (edad >= 18 || (edad >= 16 && tiene_autorizacion)) {
        return 1;
    }
    return 0;
}

int main(void) {
    clasificar_numero(-8);
    printf("Nota 76 => %s\n", calificacion(76));
    printf("Año 2024 bisiesto: %s\n", es_bisiesto(2024) ? "sí" : "no");
    printf("Acceso (17, autorizacion=1): %s\n",
           acceso_permitido(17, 1) ? "permitido" : "denegado");
    return 0;
}

Resultado esperado

1
2
3
4
-8 es negativo
Nota 76 => Notable
Año 2024 bisiesto: sí
Acceso (17, autorizacion=1): permitido

Errores frecuentes

  • Encadenar if independientes cuando necesitas else if.
  • Escribir condiciones complejas sin paréntesis y cambiar la prioridad lógica.
  • No cubrir casos borde (por ejemplo nota exacta 50 o 70).
  • Anidar demasiado en vez de simplificar condiciones.

Aplicación práctica

Los condicionales aparecen en:

  • validación de datos,
  • reglas de negocio,
  • control de acceso y permisos,
  • clasificación de resultados por tramos.

Dominar if else acelera el resto de estructuras de control y diseño de funciones.

Siguiente ejercicio recomendado

Práctica guiada y siguiente paso

Si quieres una ruta completa con progresión real de dificultad:

FAQ

¿Cómo sé si usar if else if o varios if?

Si las condiciones son excluyentes, usa if else if. Si pueden cumplirse varias a la vez, usa if separados.

¿Qué hago cuando la condición es muy larga?

Divide la lógica en variables intermedias con nombres claros. Mejora legibilidad y reduce errores.

¿Es malo usar condicionales anidadas en C?

No, pero conviene limitar la profundidad. Si crece demasiado, suele ser mejor extraer funciones o simplificar reglas.