Corso Online per Potenziare le Competenze Digitali
Mara, la professoressa di Marta, è molto precisa, e ama fare statistiche sull’andamento della classe.
Dopo ogni verifica calcola il voto medio della classe, una grandezza da lei inventata e definita dal seguente algoritmo:
- prima vengono raccolti tutti i voti assegnati ai compiti;
- successivamente Mara esclude i due compiti migliori e i due compiti peggiori;
- viene calcolata la media dei voti dei compiti rimanenti, arrotondata eventualmente per difetto all’intero più vicino.
Aiuta Mara ad automatizzare questo calcolo.
Dati di input
Nella prima riga del file input.txt è presente l’intero N, il numero di studenti che hanno sostenuto il compito.
Nella seconda riga si trovano invece N interi a1, a2, …, aN rappresentanti i voti attribuiti ai compiti.Dati di output
Stampare sulla prima riga del file output.txt il voto medio della classe.
Assunzioni
- 5 ≤ N ≤ 1000.
- Ogni voto è un intero compreso tra 3 e 10, estremi inclusi.
- I voti non sono dati necessariamente in ordine crescente.
Esempi di input/output
input.txt output.txt 10
3 7 8 4 4 9 6 8 7 66 6
4 4 5 5 3 35
/* www.valcon.it/ Corso Online per Potenziare le Competenze Digitali Media dei voti */ #include#include using namespace std; #define VMIN 3 #define VMAX 10 int main() { int N, min1=VMAX+1, min2=VMAX+1, max1=VMIN-1, max2=VMIN-1, totale=0, media, voto; ifstream fin ( "input.txt"); ofstream fout("output.txt"); fin >> N; for(int i=1; i <= N; i++) { fin >> voto; totale += voto; if(voto < min1) { min2=min1; min1=voto; } else if(voto < min2) { min2=voto; } if(voto > max1) { max2=max1; max1=voto; } else if(voto > max2) { max2=voto; } } totale=totale-min1-min2-max1-max2; media =totale/(N-4); fout << media; return 0; }