Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    78

    [C] Gestione Libri Studenti: errore cannot convert in assignment

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

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    78
    ho fatto solo la lettera a,prima di proseguire vorrei capire come risolvere l'errore...

    ps.perdonatemi per la scelta infelice del titolo del post..in realtà sarebbe meglio gestione libri studenti e non gestione voti studenti,,,,colpa della fretta....
    Ultima modifica di SSSS90; 15-04-2014 a 15:58

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    L è un intero e la funzione non restituisce un intero
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.