Errore di compilazione c++

di il
8 risposte

Errore di compilazione c++

Qualcuno sa perché questo programma non viene compilato e dirmi dove sta l' errore per piacere?

struct libro{
char autore[20];
char titolo[30];
int anno;
};
struct collezione{
char titolo[30];
struct libro l [200];
};

struct libro inputlibro();
struct collezione inputcollezione();
struct libro libropiuvecchio(struct collezione *c);

int main(int argc, char** argv) {
struct collezione horror;
inputcollezione&(horror);
libropiuvecchio&(horror);
printf("%d",horror->l.anno);
return 0;
}

struct libro inputlibro(){
printf("Inserire titolo del libro\n");
scanf("%s",inputlibro->titolo);
printf("Inserire l' autore del libro\n");
scanf("%s",inputlibro->autore);
printf("Inserire l' anno di publicazione\n");
scanf("%d",&inputlibro->anno);
return struct libro;
}

struct collezione inputcollezione(){
printf("Inserire il titolo della collezione\n");
scanf("%s",inputcollezione->titolo);
inputlibro&()[200];
}

struct libro libropiuvecchio(struct collezione *c){
int vecchio;
for(i=0;i<200;i++)
if(c->l.anno<c->l[i+1].anno)vecchio=c->l.anno;
return vecchio;
}

8 Risposte

  • Re: Errore di compilazione c++

    Scusa, ma il compilatore ti darà una segnalazione d'errore? L'hai letta? La riporti nel forum ?
  • Re: Errore di compilazione c++

    So che ci sono dentro molti errori pero e un tentativo solo che non saprei come fare di meglio e mi è già stato detto che questo non è uno spazio dove si fanno i compiti come scritto nel regolamento il mio problema e che non ho capito l' uso dei puntatori applicato alle funzioni e questa ne è la conseguenza ho provato e riprovato a rileggere la teoria ma non capisco come applicarla
  • Re: Errore di compilazione c++

    Ma io ti ho chiesto un'altra cosa, che puoi sicuramente fare.

    Leggi gli errori che ti dà il compilatore, almeno le prime due o tre righe, e riportale nel forum che ne parliamo.
  • Re: Errore di compilazione c++

    Il primo errore che mi da e questo
    [Error] no match for 'operator&' (operand types are 'collezione()' and 'collezione')
    e me lo da nel main più precisamente dopo inputcollezione e prima di &(horror)
  • Re: Errore di compilazione c++

    Esatto, nella riga

    inputcollezione&(horror);

    quel carattere & non ha senso, almeno nel tuo programma. Tu volevi passare il puntatore alla struttura horror e quindi dovevi scrivere

    inputcollezione(&horror);

    e dato che la funzione non restituisce nulla, doveva essere di tipo void, quindi all'inizio dovevi scrivere

    void inputcollezione(struct collezione *c);

    Quindi nella funzione stessa, non c'era alcun return e l'input dei dati doveva essere

    void inputlibro(struct collezione *c)
    {
    int i;
    for(i=0; i<10; i++)
    {
    printf("Inserire titolo del libro\n");
    scanf("%s", c->l.titolo);

    in cui i è l'indice del nuovo libro da aggiungere, che ho per esempio impostato in un ciclo da 0 a 9 ...

    Il resto dei problemi è simile.

    Effettivamente devi studiare meglio puntatori, funzioni e tutto il resto ma queste indicazioni ti potrebbero essere utili.
  • Re: Errore di compilazione c++

    Ma la funzione inputlibro è il testo dell' esercizio che mi dice si scriva la funzione
    struct libro inputlibro()
    per l’acquisizione di un libro da tastiera per questo motivo ho messo che ritornava un tipo struct libro o e sbagliato?
  • Re: Errore di compilazione c++

    Allora secondo le specifiche un codice da cui partire potrebbe essere
    
    struct collezione inputcollezione();
    struct libro inputlibro();
    
    
    int main(int argc, char** argv)
    {
    	struct collezione horror;
    
    	horror = inputcollezione();
    
    	return 0;
    }
    
    struct collezione inputcollezione(){
    	struct collezione coll;
    	printf("Inserire il titolo della collezione\n");
    	scanf("%s", coll.titolo);
    	
    	int i;
    	for(i=0; i<200; i++)
    		coll.l[i] = inputlibro();
    
    	return coll;
    }
    
    struct libro inputlibro(){
    	struct libro tmp;
    
    	printf("Inserire titolo del libro\n");
    	scanf("%s", tmp.titolo);
    	printf("Inserire l' autore del libro\n");
    	scanf("%s", tmp.autore);
    	printf("Inserire l' anno di publicazione\n");
    	scanf("%d",&tmp.anno);
    	
    	return tmp;
    }
    Il resto vedilo tu ...
  • Re: Errore di compilazione c++

    Ok grazie
Devi accedere o registrarti per scrivere nel forum
8 risposte