Ciao simone1988, mi sa che ti conosco
(oh! ti sei deciso a postare un po' di codice!)
Nonostante questo, ancora non so come è fatto il programma... quell'array di struct è globale? Innanzitutto se è così dichiaralo locale al main perché tu-sai-chi non lo accetterà MAI (e fa pure bene). Poi, a questo punto, alla funzione di ricerca del massimo devi passare proprio quell'array di struct col suo size, dopo di ché devi modificare la funzione di selezione del massimo:
all'inizio ti confronta due interi, quindi è
codice:
int max_I(int a,int b) {
if (a > b)
return a;
else
return b;
}
deve diventare (è un po' rozza così, l'ideale sarebbe lavorare con i puntatori)
codice:
stud max_I(stud a, stud b) {
if (a.assenze[0] > b.assenze[0])
return a;
else
return b;
}
è chiaro quello che fa, no?
Per quanto riguarda la funzione di ricerca del massimo
codice:
stud massimo_a_ricDI(stud a[],int n) {
int mediano; /* soluzione del caso base */
if(n == 1)
return a[0];
else { /* autoattivazioni */
mediano = (n-1)/2;
return max_I(massimo_a_ricDI(a,mediano+1),massimo_a_ricDI(a+mediano+1,n-mediano-1));
}
}
in pratica devi adattare tutto al tuo tipo che non è più int ma "stud"...
Se hai ancora problemi, posta tutto il codice altrimenti continuerai ad andare in giro per il web senza avere risposta x°D