salve a tutti

il seguente codice mi va in crash dopo l'inserimento del terzo valore
chi mi sa dire il perchè?

codice:
#include<stdio.h>
#include<stdlib.h>

struct libro{
char titolo[50];
int prezzo;
};

main()
{
libro lib[5];
int i;
i=0;
for(i=0;i<5;i++)
{
gets(lib[i].titolo);
scanf("%d",lib[i].prezzo);
}
system("pause");

}