Giusto, però se hai degli int nell'array nella funzione "d'origine", credo proprio che dovresti anche avere un puntatore a int tra i parametri della funzione di calcolo della media. Ciò non toglie che potresti poi restituire un float come valore di ritorno, tipo: float CalcolaMedia(const int *vett, int n). A quel punto, la funzione potrebbe diventare così...
float CalcolaMedia( const int *vett, int n ) {
int i, somma;
for( somma=0, i=0; i<n; i++ )
somma += vett[i];
return ((float)somma)/((float)n);
}
In merito al tipo di calcolo da effettuare nelle altre due funzioni (ovvero se effettuarlo concretamente o limitarsi a restituire il primo e l'ultimo valore), non sono certo nella testa di chi ha scritto l'esercizio, però dovessi consegnarlo io farei una di tre cose:
1. se possibile, chiedere lumi all'insegnante o, almeno, consultarsi con qualche compagno per sondare le possibili intenzioni del testo
2. se 1. non è praticabile, seguire la strada più completa, specificando magari in un commento per l'insegnante le ragioni (spiccatamente scolastiche) per le quali si è scelta una soluzione apparentemente meno efficace
3. seguire la strada più completa, mentendo spudoratamente nell'affermare che si è scelta quella strada per attribuire maggiore genericità alle funzioni, onde renderle più versatili in previsione di un riutilizzo in occasioni future