ciao ragazzi,
sono nuovo del forum e volevo chiedervi se potevate aiutarmi con la risoluzione di questo esercizio in linguaggio c.ecco il testo:

Definire una struttura dati per memorizzare un elenco di libri. Ciascun libro `e de-scritto da un Autore, un Titolo, un Editore un anno di pubblicazione e il costo.Scrivere una funzione in linguaggio C che acquisisca da tastiera un elenco di librie li memorizzi in una variabile che deve essere restituita dalla funzione. La funzione deve richiedere all’inizio il numero di libri che verranno immessi e deve crearedinamicamente lo spazione necessario a salvare tutti i dati.



inoltre scrivere:
  • una funzione che prenda in ingresso un elenco di libri e restituisca l’anno diuscita del libro piu` antico in elenco. La funzione deve inoltre stampare i suoidati.
  • una funzione che prenda in ingresso un elenco di libri e un prezzo di riferimentoe restituisca il libro con il prezzo piu` vicino a quello introdotto. La funzionedeve inoltre stampare i suoi dati.
    io ho fatto così però non mi stampa nulla




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


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


    typedef char stringa[50];
    typedefstruct
    {
    stringa Autore;
    stringa Titolo;
    stringa Editore;
    int Anno;
    int Costo;
    } Libro;
    typedefstruct
    {
    Libro E[1000];
    int NumLibri;
    } Elenco;


    Elenco LeggiDati()
    {
    int i;
    Elenco L;
    printf("Scrivi il numero dei libri che vuoi inserire: ");
    scanf("%d",&L.NumLibri);
    printf("\n");
    while(i<L.NumLibri)
    { printf("Autore: ");
    scanf("%s",L.E[i].Autore);
    printf("\n");
    printf("Titolo: ");
    scanf("%s",L.E[i].Titolo);
    printf("\n");
    printf("Editore: ");
    scanf("%s",L.E[i].Editore);
    printf("\n");
    printf("Anno: ");
    scanf("%d",&L.E[i].Anno);
    printf("\n");
    printf("Costo: ");
    scanf("%d",&L.E[i].Costo);
    printf("\n");
    i++;
    }
    return L;
    }


    int LibroPiuVecchio(Elenco L)
    {
    int i;
    int vecchio = L.E[0].Anno;
    int IndiceLibroVecchio = 0;
    while(i<L.NumLibri)
    if(vecchio > L.E[i].Anno)
    {
    vecchio = L.E[i].Anno;
    IndiceLibroVecchio = i;
    }
    printf("Autore: %s\n", L.E[IndiceLibroVecchio].Autore);
    printf("Titolo: %s\n", L.E[IndiceLibroVecchio].Titolo);
    printf("Editore: %s\n",L.E[IndiceLibroVecchio].Editore);
    printf("Anno: %d\n", L.E[IndiceLibroVecchio].Anno);
    printf("Costo: %d\n", L.E[IndiceLibroVecchio].Costo);
    return vecchio;
    i++;
    }


    int main()
    {
    LeggiDati();

    return0;

    }


    potete aiutarmi ? grazie.