Ejercicio 02 — Leer N y calcular la suma 1+2+…+N

Dificultad: verde · Módulo 03 (Bucles)

Enunciado

Leer N y calcular la suma 1+2+…+N.

Diagrama de flujo

Diagrama de flujo del ejercicio 02

Cómo se resuelve

Aquí aparece uno de los patrones más importantes de la programación: el acumulador. La idea es tener una variable, suma, que va guardando el total mientras el bucle recorre los números del 1 al N.

  1. Antes del bucle declaramos int suma = 0. Ese valor inicial de 0 es imprescindible: es el “punto de partida” al que iremos añadiendo cosas.
  2. El for recorre i de 1 hasta n. En cada vuelta, suma += i significa suma = suma + i, es decir, “coge lo que ya tenías acumulado y súmale el número actual”.
  3. Al terminar el bucle, suma contiene 1+2+...+N y lo mostramos con printf.

La trampa típica es no inicializar el acumulador o hacerlo con un valor equivocado. Si escribes solo int suma; sin el = 0, la variable arranca con un valor basura (lo que hubiera en esa zona de memoria) y el resultado será un número sin sentido. Regla de oro: todo acumulador que suma empieza en 0; todo acumulador que multiplica (como el factorial del ejercicio siguiente) empieza en 1.

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 03: Bucles
 * Ejercicio 02 — PRACTICA (rellena los TODO)
 * Enunciado: Leer N y calcular la suma 1+2+...+N.
 * Dificultad: verde
 * Compilar: gcc -std=c11 -Wall ej02_practica.c -o ej02 && ./ej02
 */
 
#include <stdio.h>
 
int main(void) {
    int n;
 
    // TODO 1: Pide N al usuario y leelo con scanf
 
    // TODO 2: Declara una variable entera 'suma' e iniciala a 0
    //         (si no la inicializas, su valor es basura!)
 
    // TODO 3: Bucle for de 1 a n; en cada paso suma += i
 
    // TODO 4: Imprime el resultado con el formato:
    //         "Suma de 1 a N = resultado"
 
    return 0;
}

Solución — cópiala y ejecútala

/*
 * Curso de C — Modulo 03: Bucles
 * Ejercicio 02 — MODELO (resuelto)
 * Enunciado: Leer N y calcular la suma 1+2+...+N.
 * Dificultad: verde
 * Compilar: gcc -std=c11 -Wall ej02_modelo.c -o ej02 && ./ej02
 */
 
#include <stdio.h>
 
int main(void) {
    int n;
    printf("Introduce N: ");
    scanf("%d", &n);
 
    int suma = 0;               // acumulador, siempre inicializar a 0
 
    for (int i = 1; i <= n; i++) {
        suma += i;              // suma = suma + i
    }
 
    printf("Suma de 1 a %d = %d\n", n, suma);
    return 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.

Conexiones