En este último paso, refactorizaremos el código para crear una función para calcular e imprimir la media, haciendo que nuestro programa sea más modular y legible.
Abre el archivo existente:
cd ~/project
nano mean_calculation.c
Actualiza el código con una función dedicada para el cálculo de la media:
#include <stdio.h>
#define MAX_SIZE 100
// Función para calcular e imprimir la media
void calculateMean(int numbers[], int count) {
if (count <= 0) {
printf("Error: No hay números para calcular la media.\n");
return;
}
int sum = 0;
float mean;
// Calcula la suma
for (int i = 0; i < count; i++) {
sum += numbers[i];
}
// Calcula la media
mean = (float)sum / count;
// Imprime estadísticas detalladas
printf("\nEstadísticas:\n");
printf("Número de elementos: %d\n", count);
printf("Suma de los números: %d\n", sum);
printf("Media de los números: %.2f\n", mean);
}
int main() {
int numbers[MAX_SIZE];
int count;
// Solicita al usuario el número de elementos
printf("Introduce el número de elementos (máximo %d): ", MAX_SIZE);
scanf("%d", &count);
// Validación de la entrada
if (count <= 0 || count > MAX_SIZE) {
printf("Número de elementos inválido.\n");
return 1;
}
// Lee los números en el array
printf("Introduce %d números:\n", count);
for (int i = 0; i < count; i++) {
printf("Introduce el número %d: ", i + 1);
scanf("%d", &numbers[i]);
}
// Imprime los números introducidos
printf("\nNúmeros introducidos:\n");
for (int i = 0; i < count; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
// Calcula e imprime la media
calculateMean(numbers, count);
return 0;
}
Compila el programa:
gcc mean_calculation.c -o mean_calculation
Ejecuta el programa:
./mean_calculation
Salida de ejemplo:
Introduce el número de elementos (máximo 100): 4
Introduce 4 números:
Introduce el número 1: 10
Introduce el número 2: 20
Introduce el número 3: 30
Introduce el número 4: 40
Números introducidos:
10 20 30 40
Estadísticas:
Número de elementos: 4
Suma de los números: 100
Media de los números: 25.00
Mejoras clave en esta versión:
- Se creó una función separada
calculateMean().
- Se añadió una salida estadística más detallada.
- Se mejoró la gestión de errores para casos especiales.
- Se mantuvo la misma funcionalidad principal que los pasos anteriores.
- Se hizo el código más modular y fácil de leer.
El programa demuestra:
- Un enfoque basado en funciones para los cálculos.
- Una salida estadística completa.
- Un diseño de código modular.