Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. 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.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1787
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



Software Failure: Guru Meditation
Forum su Informatica, Elettronica, Robotica e Tecnologia: http://www.nonsoloamiga.com
PM