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

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.
- 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. - El
forrecorreide 1 hastan. En cada vuelta,suma += isignificasuma = suma + i, es decir, “coge lo que ya tenías acumulado y súmale el número actual”. - Al terminar el bucle,
sumacontiene1+2+...+Ny lo mostramos conprintf.
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.