/***********************************************************************************

   Scrivere una funzione che, dopo aver definito la struttura dati 'persona' 
   (caratterizzata da un nome e dall'anno di nascita) e la struttura dati
   'statistiche' (che deve memorizzare l'anno di nascita minimo, quello massimo
   e quello medio), riceve in ingresso un vettore di strutture di tipo
   'persona' e restituisce (per valore) una istanza di 'statistiche',
   contenente le statistiche di cui sopra, calcolate sul vettore di persone
   passato.

***********************************************************************************/
#include <iostream>
#include <cstring>
using namespace std;

struct persona {
   char nome[31];
   int anno_nascita;
};

struct statistiche{
   int anno_min;
   int anno_max;
   int anno_medio;
};

statistiche calcola_statistiche (const persona *vP, int dim){

  statistiche ris;
  ris.anno_min = vP[0].anno_nascita;
  ris.anno_max = vP[0].anno_nascita;

  for (int i=1; i < dim; i++) {
    if (ris.anno_min > vP[i].anno_nascita)
        ris.anno_min = vP[i].anno_nascita;
    if (ris.anno_max < vP[i].anno_nascita)
        ris.anno_max = vP[i].anno_nascita;
  }

  double somma = 0;
  for (int i=0; i<dim; i++) {
    somma= somma + vP[i].anno_nascita;  
  }

  ris.anno_medio = somma/dim;

  return ris;  
}




int main(){

  persona vett[3];

  vett[0].anno_nascita = 1994;
  strcpy(vett[0].nome,"Paolo");
  
  vett[1].anno_nascita = 1993;
  strcpy(vett[1].nome,"Andrea");
  
  vett[2].anno_nascita = 1990;
  strcpy(vett[2].nome,"Stefano");
  
  statistiche r;

  r = calcola_statistiche (vett, 3);

  cout<<"MIN =  "<<r.anno_min<<endl;
  cout<<"MAX =  "<<r.anno_max<<endl;
  cout<<"MEDIA= "<<r.anno_medio;

  return 0;
}