Ejercicio 01 — Leer N y mostrar los números del 1 al N, uno por línea

Dificultad: verde · Módulo 03 (Bucles)

Enunciado

Leer N y mostrar los números del 1 al N, uno por línea.

Diagramas de flujo

Diagrama de flujo (actividad) del ejercicio 01

Diagrama de flujo (grafo) del ejercicio 01

Cómo se resuelve

Este es el ejercicio más básico de un bucle: pedir un número N y escribir en pantalla 1, 2, 3, ... N, cada uno en su línea. Es el primer paso para entender que un bucle nos ahorra escribir la misma instrucción una y otra vez.

  1. scanf("%d", &n) lee el número. Fíjate en el & delante de n: al leer un entero, scanf necesita la dirección de la variable para guardar ahí lo que teclees.
  2. El for reúne las tres piezas de todo contador en una sola línea: int i = 1 (arranque), i <= n (condición para seguir) e i++ (avanzar). Se lee como “empieza en 1, repite mientras i sea menor o igual que n, y suma 1 en cada vuelta”.
  3. Dentro del cuerpo, printf("%d\n", i) imprime el valor actual de i seguido de un salto de línea, de modo que cada número cae en su propia fila.

La trampa habitual está en la condición: usar i < n en lugar de i <= n. Con i < n el bucle se detiene una vuelta antes y nunca imprime el propio N. Cuando quieras incluir el último valor, la condición lleva <=. El otro error clásico de todo principiante es olvidar el i++: sin él, i se queda en 1 para siempre y el programa se cuelga en un bucle infinito.

Para practicar — cópialo y complétalo

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 03: Bucles
 * Ejercicio 01 — PRACTICA (rellena los TODO)
 * Enunciado: Leer N y mostrar los números del 1 al N, uno por línea.
 * Dificultad: verde
 * Stdin: 5
 * Compilar: gcc -std=c11 -Wall ej01_practica.c -o ej01 && ./ej01
 */
 
#include <stdio.h>
 
int main(void) {
    int n;
 
    // TODO 1: Pide al usuario que introduzca N con printf
    // TODO 2: Lee el valor de N con scanf (recuerda el &)
 
    // TODO 3: Crea un bucle for que vaya de i=1 hasta i<=n
    //         En cada iteracion, imprime i seguido de un salto de linea
 
    return 0;
}

Solución — cópiala y ejecútala

/*
 * Curso de C — Modulo 03: Bucles
 * Ejercicio 01 — MODELO (resuelto)
 * Enunciado: Leer N y mostrar los números del 1 al N, uno por línea.
 * Dificultad: verde
 * Stdin: 5
 * Compilar: gcc -std=c11 -Wall ej01_modelo.c -o ej01 && ./ej01
 */
 
#include <stdio.h>
 
int main(void) {
    int n;
    printf("Introduce N: ");
    scanf("%d", &n);
 
    // Recorremos desde 1 hasta n inclusive
    for (int i = 1; i <= n; i++) {
        printf("%d\n", i);
    }
 
    return 0;
}

Ejecútalo en el navegador

▶ Abrir y ejecutar en Compiler Explorer

Se abre con la solución ya cargada; pulsa el botón de ejecutar (Run) para ver la salida. No hay que instalar nada.

Cómo usarlo

Pega el código en un fichero y ejecútalo con tu toolchain habitual (o el botón de Ejecutar de tu editor). Antes de mirar la solución, intenta completar tú el esqueleto: es la mejor forma de aprender.

Conexiones