Beh, è corretto che ti dia quegli errori ... Ad esempio, il

prezzo

nella struttura non è un array ma un singolo valore. Quindi perché scrivi

libro.prezzo[libro.top] = nuovoprezzo;

intendendo con

prezzo[libro.top]

che prezzo sia un array?