Ejercicio 02 — Calcular la suma y la media de un array de N enteros
Dificultad: verde · Módulo 05 (Arrays y cadenas)
Enunciado
Calcular la suma y la media de un array de N enteros.
Diagrama de flujo

Cómo se resuelve
Este ejercicio es el patrón clásico de acumular mientras se recorre un array. Tras leer los n enteros en a, sumamos todos sus elementos y calculamos la media.
long suma = 0— arrancamos el acumulador en0y en cada vuelta hacemossuma += a[i]. Usamoslongen lugar deintporque si sumas muchos números grandes, unintpodría desbordarse (dar la vuelta a un valor negativo sin avisar).- La media necesita una división con decimales. Aquí está la trampa:
suma / ncon ambos enteros haría división entera y tiraría los decimales (30/4daría7, no7.5). La solución es forzar el cálculo en coma flotante con un cast:
double media = (double)suma / n;Al convertir suma a double, la división pasa a ser real y conserva los decimales. Luego printf("%.2f", media) lo muestra con dos cifras.
Recuerda inicializar el acumulador a 0 antes del bucle: si lo dejas sin valor, arranca con basura y la suma sale mal.
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 05: Arrays y cadenas
* Ejercicio 02 — PRACTICA (rellena los TODO)
* Enunciado: Calcular la suma y la media de un array de N enteros.
* Dificultad: verde
* Compilar: gcc -std=c11 -Wall ej02_practica.c -o ej02 && ./ej02
*/
#include <stdio.h>
int main(void) {
int n;
// TODO 1: Pedir N al usuario y leerlo.
// TODO 2: Declara el array de enteros (max 100).
// TODO 3: Leer los N enteros del usuario con un bucle for.
// TODO 4: Declara una variable 'suma' de tipo long inicializada a 0.
// Recorre el array y acumula la suma.
// TODO 5: Calcula la media como double. Pista: necesitas un cast.
// (double)suma / n
// TODO 6: Imprime suma y media con 2 decimales.
return 0;
}Solución — cópiala y ejecútala
/*
* Curso de C — Modulo 05: Arrays y cadenas
* Ejercicio 02 — MODELO (resuelto)
* Enunciado: Calcular la suma y la media de un array de N enteros.
* Dificultad: verde
* Compilar: gcc -std=c11 -Wall ej02_modelo.c -o ej02 && ./ej02
*/
#include <stdio.h>
int main(void) {
int n;
printf("Cuantos numeros (max 100)? ");
scanf("%d", &n);
if (n < 1 || n > 100) {
printf("N debe estar entre 1 y 100.\n");
return 1;
}
int a[100];
for (int i = 0; i < n; i++) {
printf("a[%d] = ", i);
scanf("%d", &a[i]);
}
// Acumular la suma; usamos long para evitar desbordamiento con valores grandes
long suma = 0;
for (int i = 0; i < n; i++) {
suma += a[i];
}
// La media requiere division real: cast a double
double media = (double)suma / n;
printf("Suma: %ld\n", suma);
printf("Media: %.2f\n", media);
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.