Ciao a tutti !
Devo scrivere mediante l'uso delle liste una funzione che "valorizzi" la merce presente in magazzino. In pratica la funzione ricevuto l'elenco dei prodotti e il tipo di prodotto (classificato da una lettera, t nel mio caso) deve restituire il prodotto del numero dei componenti per il prezzo. Nel fare varie verifiche però ho notato che all'interno della funzione stessa i valori calcolati sono esatti mentre il valore restituito al main è errato. La funzione che ho scritto è questa :
codice:
float valorizza_magazzino(TList list, char t)
{ float v;
if (list == NULL)
return 0.0;
if (list->info.sat.tipologia == t)
{
v = (list->info.sat.prezzo*list->info.sat.numero_componenti)+ valorizza_magazzino(list->link, t);
printf ("vediamo %f\n", v);
return v;
}
else
{
v = valorizza_magazzino(list->link, t);
printf ("vediamo else %f\n", v);
return v;
}
}
Qualcuno può aiutarmi a trovare eventuali errori ?