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); }

Rispondi quotando