Salve il programma seguente non ancora completato mi da i seguenti errori:
45 cannot convert `Lista' to `int' in assignment
47 conversion from `int' to non-scalar type `Lista' requested,come mai?
codice:
/*Definire una struttura dati per memorizzare un elenco di libri.
Ciascun libro e' descritto da un autore,titolo e editore e un anno di pubblicazione.
a)Scrivere una funzione in c che acquisisca da tastiera l'elenco dei libri e li memorizzi in una variabile che deve essere restituita dalla funzione.
b)Scrivere una funzione che prenda in ingresso un elenco di libri e restituisca l'anno di uscita del libro più vecchio in elenco.La funzione deve stampare i dati
del libro piu' vecchio in elenco.
c)Scrivere infine una funzione che,preso in input il nome di un autore,restituisca se l'autore è presente in elenco.*/
#include<stdio.h>
#include<string.h>
#include<assert.h>
#include<stdlib.h>
#define MAX 150
#define LEN 1000
/*strutture dati*/
typedef struct {
char autore[MAX];
char titolo[MAX];
char editore[MAX];
int anno;
}Libro;
typedef struct {
Libro elementi[LEN];
int num_libri;
}Lista;
int menu();/*funzione di tipo int,deve restituire la scelta fatta dall'utente*/
Lista Inserimento_Libro();
void Stampa_elenco(Lista list);
int main()
{
int scelta;
int Lista;
int L;
while (scelta=menu())
switch(scelta){
case 1:
/*inserimento*/;
system("CLS");
L=Inserimento_Libro();/*qui mi segnala errore*/:confused:
printf("\n");
Stampa_elenco(L);
system("pause");
break;
case 2:
system("CLS");
system("pause");
break;
/*libro_vecchio*/;
case 3:
system("CLS");
system("pause");
break;
/*cerca_autore*/;
case 4:
system("CLS");
system("pause");
break;
/*stampa*/;
case 0:
return 0;/*esci*/;
}
}
int menu(){
void Stampa_elenco(Lista list);
int scelta;
printf("GESTIONE LIBRI \n");
printf("[1] Inserimento libro\n");
printf("[2] Cerca libro vecchio\n");
printf("[3] Cerca autore\n");
printf("[4] Stampa libri \n");
printf("[0] esci \n\n");
printf("scelta: ");
scanf("%d",&scelta);
while(scelta<0||scelta>4)
{
printf("Scelta non valida\n");
printf("scelta: ");
scanf("%d",&scelta);
return scelta;
}
return scelta;
}
Lista Inserimento_Libro(){
Lista list;
int i;
printf("Quanti libri vuoi inserire? ");
scanf("%d",&list.num_libri);
fflush(stdin);
for(i=0;i<list.num_libri;i++){
printf("Inserisci autore");
gets(list.elementi[i].autore);
printf("Inserisci titolo");
gets(list.elementi[i].titolo);
printf("Inserisci editore");
gets(list.elementi[i].editore);
printf("Inserisci anno di pubblicazione");
scanf("%d",&list.elementi[i].anno);
fflush(stdin);
}
return list;
}
void Stampa_elenco(Lista list)
{
int i;
for(i=0;i<list.num_libri;i++)
printf("Libro n.%d\n",i);
printf("Autore %s\n" ,list.elementi[i].autore );
printf("Titolo %s\n",list.elementi[i].titolo );
printf("Editore %s\n",list.elementi[i].editore );
printf("Anno: %d\n\n",list.elementi[i].anno);
}