Imprimir a Média
Neste passo final, refatoraremos o código para criar uma função para calcular e imprimir a média, tornando o nosso programa mais modular e legível.
Abra o ficheiro existente:
cd ~/project
nano mean_calculation.c
Atualize o código com uma função dedicada para o cálculo da média:
#include <stdio.h>
#define MAX_SIZE 100
// Função para calcular e imprimir a média
void calculateMean(int numbers[], int count) {
if (count <= 0) {
printf("Erro: Não há números para calcular a média.\n");
return;
}
int sum = 0;
float mean;
// Calcula a soma
for (int i = 0; i < count; i++) {
sum += numbers[i];
}
// Calcula a média
mean = (float)sum / count;
// Imprime estatísticas detalhadas
printf("\nEstatísticas:\n");
printf("Número de elementos: %d\n", count);
printf("Soma dos números: %d\n", sum);
printf("Média dos números: %.2f\n", mean);
}
int main() {
int numbers[MAX_SIZE];
int count;
// Solicita ao utilizador o número de elementos
printf("Introduza o número de elementos (máx. %d): ", MAX_SIZE);
scanf("%d", &count);
// Validação de entrada
if (count <= 0 || count > MAX_SIZE) {
printf("Número de elementos inválido!\n");
return 1;
}
// Lê os números para o array
printf("Introduza %d números:\n", count);
for (int i = 0; i < count; i++) {
printf("Introduza o número %d: ", i + 1);
scanf("%d", &numbers[i]);
}
// Imprime os números introduzidos
printf("\nNúmeros introduzidos:\n");
for (int i = 0; i < count; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
// Calcula e imprime a média
calculateMean(numbers, count);
return 0;
}
Compile o programa:
gcc mean_calculation.c -o mean_calculation
Execute o programa:
./mean_calculation
Exemplo de saída:
Introduza o número de elementos (máx. 100): 4
Introduza 4 números:
Introduza o número 1: 10
Introduza o número 2: 20
Introduza o número 3: 30
Introduza o número 4: 40
Números introduzidos:
10 20 30 40
Estatísticas:
Número de elementos: 4
Soma dos números: 100
Média dos números: 25.00
Melhorias chave nesta versão:
- Criada uma função separada
calculateMean()
- Adicionada saída estatística mais detalhada
- Melhorada a gestão de erros para casos limite
- Mantida a mesma funcionalidade principal das etapas anteriores
- Código mais modular e fácil de ler
O programa demonstra:
- Abordagem baseada em funções para cálculos
- Saída estatística abrangente
- Design de código modular