Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C++] Errore "Could not convert from array... to array..."

    Ciao a tutti, vi posto il testo di un esercizio e il codice associato che però presenta un errore nel passaggio del record agenda, ma non riesco a capire come venirne a capo.

    Si sviluppi un programma che consente di stampare a video gli studenti che hanno preso un voto maggiore ad uno dato. Il programma deve essere strutturato nel seguente modo:

    1. struttura studente (nome, cognome, votoesameelementi)

    2. funzione capace di stampare uno studente

    3. funzione che costruisce un vettore di studenti con voto maggiore di uno dato.

    Sviluppate le 3 funzioni, il main deve fare inserire un vettore di studenti, utilizzando la funzione di stampa, stampare i primi due studenti inseriti.

    Stampare a video tutti gli studenti (solo cognome) con voto maggiore di un voto inserito da tastiera.

    Infine si sviluppi una funzione

    4. funzione capace di cercare uno specifico studente (cognome oppure nome).

    Il main richiamando la funzione 4 deve cercare e stampare lo studente cercato (con il voto di esame)


    codice:
    #include<iostream>
    #include<stdlib.h>
    #include<string.h>
    #define N 10
    #define C 10
    using std::cin;
    using std::cout;
    typedef struct studente
    {int voto;
    char nome[N],cognome[C];
    }array;
    
    void stampa(int,array,int);
    array costruzionearray(int,array,int,int);
    void ricerca(int,array);
    
    int main()
    {int n,i,c=0,elemento,j,f=0;
    cout<<" \n inserire il n* totale di studenti ";
    cin>>n;
    array agenda[n];
    for(i=0;i<n;i++)
    {cout<<" \n inserire i dati del "<<i+1<<" * studente\n";
    cout<<"nome: ";
    cin>>agenda[i].nome;
    cout<<"\n cognome: ";
    cin>>agenda[i].cognome;
    cout<<" \n inserire voto esame: ";
    cin>>agenda[i].voto;
    }
    stampa(n,*agenda,c);
    c++;
    stampa(n,*agenda,c);
    cout<<" \n inserire discriminante \n";
    cin>>elemento;
    for(j=0;j<n;j++)
    {if(agenda[j].voto>= elemento)
    {f++;
    }
    }
    costruzionearray(n,*agenda,elemento,f);
    ricerca(n,agenda);
    }
    
    
    void stampa(int n,array *prova,int w)
    {cout<<"\n dati del "<<w+1<<" * studente \n";
    cout<<"\n nome: "<<prova[w].nome;
    cout<<" \n cognome: "<<prova[w].cognome;
    cout<<"\n voto: "<<prova[w].voto;
    }
    
    
    array costruzione_array (int n, array *agenda,int &elemento,int &f)
    {array B[f];
    int k,l=0,h;
    for(k=0;k<n;k++)
    {if (agenda[k].voto>= elemento)
    {strcpy(B[l].nome,agenda[k].nome);
    strcpy(B[l].cognome,agenda[k].cognome);
    B[l].voto= agenda[k].voto;
    l++;
    }
    }
    for(h=0;h<f;h++)
    {stampa(f,*B,h);
    }
    }
    
    
    void ricerca(int n,array *agenda)
    {char L[N],Q[C];
    int x;
    cout<<"\n inserire nome da ricercare : ";
    cin>>L;
    cout<<"\n inserire cognome da ricercare: ";
    cin>>Q;
    for(x=0;x<n;x++)
    {if(agenda[x].nome==L && agenda[x].cognome==Q)
    {stampa(n,*agenda,x);
    }
    }
    }
    


    L'errore è il seguente:
    [Error] could not convert '(array*)(& agenda)' from 'array* {aka studente*}' to 'array {aka studente}'
    e compare in questa parte di codice
    codice:
    
    
    codice:
    ricerca(n,agenda);
    

  2. #2
    Ho risolto! Potete eliminare il thread

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    152
    Ho risolto! Potete eliminare il thread
    Ti consiglierei di mettere anche come hai risolto nel caso qualcuno cercasse di risolvere il tuo stesso problema in modo che anche tu contribuisci ad aiutare gli altri , saluti

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 © 2024 vBulletin Solutions, Inc. All rights reserved.