#include <stdio.h>
/*
Acquisisci 20 numeri e restituisci la loro media
Versione Estesa: ciclo di acquisizione + ciclo di somma + valori salvati in un array
*/
#define NUM 20
void main (){
int i;
int vet[NUM];
float sum, avg; // anche sum deve essere di tipo float perchè il se nella divisione sum/i entrambe le variabili sono di tipo int il risultato sarà di tipo int anche se salvato in una variabile avg di tipo float.
for(i = 0; i < 20; i++){
printf(“Inserisci il numero %d dell’array: “, i + 1); //Prestare attenzione a scrivere i + 1 e non i++. Il primo comando non altera la variabile di controllo del ciclo i mentre il secondo la incrementa sfalsando il ciclo Nota la presenza dello spazio a fine stringa utile nell’esecuzione
scanf(“%d”, &vet[i]);
}
sum = 0;
for (i = 0; i < NUM; i++)
sum = sum + vet[i];
avg = sum / i; // i dopo l’ultimo incremento vale proprio 20 ed è quindi il divisore. Questo perchè nell’ultima iterazione il valore di i era 19 (gli indici dell’array per 20 ‘caselle’ vanno da 0 a 19) essendo posizionati sull’ultimo valore dell’array. Dopo questo la i viene incrementata e si esce dal ciclo.
printf(“La media dei valori inseriti e’ %f”, avg);
}