Media dei voti

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 6
6
6
4 4 5 5 3 3
5

/*  
 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;
}

Lascia un commento