For en C: ejercicios resueltos con acumuladores y contadores

  3 minutos

Si buscas ejercicios for en C resueltos, aquí tienes un bloque práctico con casos típicos de clase y entrevistas iniciales.

El objetivo es dominar tres patrones clave del bucle for: acumulación, conteo y recorrido de arrays.

Resuelve estos 4 mini ejercicios usando for:

  1. calcular la suma de 1..n,
  2. contar cuántos pares hay en un array,
  3. obtener el máximo de un array,
  4. calcular la media de un array.
#include <stdio.h>

int suma_1_n(int n) {
    int suma = 0;
    for (int i = 1; i <= n; i++) {
        suma += i;
    }
    return suma;
}

int contar_pares(const int a[], int n) {
    int contador = 0;
    for (int i = 0; i < n; i++) {
        if (a[i] % 2 == 0) {
            contador++;
        }
    }
    return contador;
}

int maximo_array(const int a[], int n) {
    int maximo = a[0];
    for (int i = 1; i < n; i++) {
        if (a[i] > maximo) {
            maximo = a[i];
        }
    }
    return maximo;
}

double media_array(const int a[], int n) {
    int suma = 0;
    for (int i = 0; i < n; i++) {
        suma += a[i];
    }
    return (double)suma / n;
}

int main(void) {
    int n = 10;
    int datos[] = {7, 2, 9, 4, 6, 3};
    int tam = (int)(sizeof(datos) / sizeof(datos[0]));

    printf("suma_1_n(%d) = %d\n", n, suma_1_n(n));
    printf("pares_en_array = %d\n", contar_pares(datos, tam));
    printf("maximo_array = %d\n", maximo_array(datos, tam));
    printf("media_array = %.2f\n", media_array(datos, tam));

    return 0;
}
suma_1_n(10) = 55
pares_en_array = 3
maximo_array = 9
media_array = 5.17
  • Empezar y terminar mal el rango (i <= n frente a i < n).
  • No inicializar acumuladores o contadores en 0.
  • Dividir enteros al calcular media y perder decimales.
  • Acceder fuera de rango en arrays (i <= n en lugar de i < n).

Estos patrones de for aparecen en casi cualquier ejercicio inicial de C:

  • procesamiento de listas de datos,
  • estadísticas simples,
  • validaciones y filtros por condición.

Si dominas estos 4 casos, te será más fácil pasar a problemas de arrays, matrices y ordenación.

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

No es mejor ni peor en general, pero para recorridos con número de iteraciones conocido suele ser más claro.

Un acumulador suma o combina valores (por ejemplo suma += a[i]). Un contador incrementa ocurrencias (por ejemplo contador++).

Empieza con problemas de una sola variable, luego añade arrays y finalmente combina dos condiciones dentro del mismo bucle.