#include <stdio.h>
/*
Acquisisci 20 numeri e restituisci la loro media
Versione Breve: ciclo unico senza salvataggio nell’array (risparmio spazio in memoria se non devo riutilizzare i dati in futuro)
*/
#define NUM 20
void main (){
int i;
int value;
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.
sum = 0;
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”, &value);
sum = sum + value;
}
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);
}