Ho scritto un codice che permette di calcolare il massimo in un array di liste circolari. Nel listato in basso c'è solo la funzione (quindi niente printf che stampino il valore trovato).
Penso che la logica sia corretta, ma non sono sicuro del ciclo do-while. Qualcuno può darmi una mano?
codice:
struct cella
{
int valore;
struct cella *next;
};
void CercaMax(struct cella (*(*elenco))[MAX_LISTE], int max);
main()
{
struct cella (*elenco)[MAX_LISTE] = NULL;
int valore;
CercaMax(&elenco[MAX_LISTE], valore);
return 0;
}
void CercaMax(struct cella (*(*elenco))[MAX_LISTE], int max)
{
struct cella *temp;
temp = (*elenco)[MAX_LISTE];
int i;
max = 0;
for(i = 0; i < MAX_LISTE; i++)
{
do
{
if((temp -> valore) > max)
{
max = temp -> valore;
}
temp = temp -> next;
}
while(temp != elenco[i]);
}