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 ?