Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - programma con liste con estrazione dalla testa ed inserimento in testa
Forum - C/C++ - programma con liste con estrazione dalla testa ed inserimento in testa

Avatar
ciao888 (Normal User)
Pro


Messaggi: 69
Iscritto: 14/10/2010

Segnala al moderatore
Postato alle 20:15
Martedì, 02/11/2010
ho scritto questo programma in cui costruisco una lista di nomi con vicino le età, il programma purtroppo mi dà errore sulla riga dove è scritto:
Codice sorgente - presumibilmente Plain Text

  1. persona.nome = p-> nome;


secondo voi dov'è l'errore?ecco il mio programma:
Codice sorgente - presumibilmente C++

  1. #include <cstdlib>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. struct persona
  6. { char nome[20];//creo una lista in cui compare ogni elemento con i relativi nome ed età
  7. int eta;
  8. persona* successiva;
  9. };
  10.  
  11. typedef persona* lista;
  12.  
  13. lista creaLista (int n)
  14. {
  15. lista p, p0 = 0;
  16.  
  17. for (int i = 1; i <= n; i++)
  18. {
  19. p = new persona;
  20. cin >> p->nome >> p->eta;
  21. p->successiva = p0;
  22. p0 = p;
  23. }
  24. return p0;
  25. }
  26. bool estTesta (lista& inizio, int& persona)//estraggo un elemento dalla testa della lista
  27. {lista p = inizio;
  28. if (p == 0) return false;
  29. persona.nome = p->nome;
  30. persona.eta = p->eta;
  31.  
  32. inizio = p->succ;
  33. delete p;
  34. returne true;
  35. }
  36. void insTesta (lista& inizio, int persona)//inserisco un altro elemento dalla testa della lista
  37. {
  38. lista p = new elem;
  39. p->nome = persona.nome;
  40. p->succ = inizio;
  41. inizio = p;
  42. }
  43.  
  44. int main()
  45. {
  46. const int numero_persone = 10;
  47. creaLista(numero_persone);
  48. estTesta (numero_persone);
  49. insTesta (numero-persona);
  50. return 0;
  51. system ("pause");
  52. }


Ultima modifica effettuata da ciao888 il 02/11/2010 alle 20:16
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
0
Down
V
Segnala al moderatore
Postato alle 19:20
Mercoledì, 03/11/2010
"persona", oltre ad essere ambiguo con la struct persona, è un parametro di tipo int, che evidentemente non dispone dei campi nome ed eta.

PM
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 4:22
Giovedì, 04/11/2010
estTesta (numero_persone);
insTesta (numero-persona);

ma da dove l'hai copiato (malamente) sto codice?

insTesta e estTesta hanno due parametri, tu ne usi uno solo...  senza contare la sottrazione "numero - persona" che non ha senso...

tralascio anche il pietoso "returne true".... poi è bellissimo il System("pause") messo DOPO il return della funzione main...

Continuo a sostenere la tesi che il miglior modo di imparare a programmare passa dai libri, non dal copia-incolla e nemmeno dall'applicazione selvaggia del Lemma di Borel-Cantelli
http://it.wikipedia.org/wiki/Lemma_di_Borel-Cantelli


PM