Salve a tutti,
proseguo un thread iniziato ieri dal titolo "Newbie su puntatori e strutture". Oggi il problema lo verifico se nel mio prog voglio implementare la ricerca di un determinato libro in base al prezzo. Posto il codice:

#include <stdio.h>
#define MAXNUM 5
struct libreria
{
char titolo[30];
char autore[30];
long int prezzo;
};
struct libreria lib[MAXNUM];
void inserisci();
void ricerca(long int prz);

main()
{
long int prezzocerc;

inserisci();

printf("\nInserire il prezzo da ricercare :");
scanf("%d",&prezzocerc);

ricerca(prezzocerc);
return 0;
}

void inserisci()
{
int i;
for(i=0;i<MAXNUM;i++)
{
printf("\nInserire il titolo del libro %d :",i+1);
gets(lib[i].titolo);
printf("\nInserire l\' autore del libro %d :",i+1);
gets(lib[i].autore);
printf("\nInserire il prezzo del libro %d :",i+1);
scanf("%d",&lib[i].prezzo);

while(!getchar());
}
}

void ricerca(long int prz)
{
int i;
int trovato;

trovato -=1;
for (i=0;i<MAXNUM;i++)
{
lib[i].prezzo == prz ? trovato ++ : 0;
if (trovato)
{
puts(lib[i].titolo);
printf("\t");
puts(lib[i].autore);
printf("\t");
printf("%d",lib[i].prezzo);
printf("\t");
};
}
}

Quando do in input il prezzo da ricercare (quindi il prezzo deve essere ESATTAMENTE uno presente all'interno della tabella) mi vengono fuori un output fatto di numeri sballati, che non riguardano la stampa che io volevo.
Ancora una volta sono qui (prostrato) a chiedere in cosa sbaglio...

Grazie