PDA

Visualizza la versione completa : [C] Inserimento ripetuto di elementi in una lista


giovannimarino
23-08-2011, 12:44
e da 3 giorni a questa parte che sto leggendo la teoria sulle liste ma sulla pratica non ci siamo...vorrei creare una software che mi fa inserire un qualsiasi valore finche non spingo un tasto di termine lista ($ per esempio)



int main()
{
struct nodo
{
string ciao;
nodo*next;
};
nodo*testa;
nodo*aux;
do
{
aux=new nodo;
testa=aux;
aux=new nodo;
cin>>testa->ciao;
testa->next=aux;
}while(testa->ciao='$');
}

questo quello che faccio io... :facepalm:

LeleFT
23-08-2011, 13:29
Quando apri una discussione, devi indicare il linguaggio nel titolo, come richiesto dal regolamento interno (http://forum.html.it/forum/showthread.php?s=&threadid=973887), e devi anche dire qual l'errore che ottieni o il malfunzionamento riscontrato.

Inoltre il codice va postato all'interno degli appositi tag CODE (nel regolamento c' scritto anche questo).

Non ho controllato tutto il codice, ma la condizione del while errata: il codice del ciclo viene ripetuto finch la condizione del WHILE rimane vera... ovvero, l'esatto contrario di ci che vuoi ottenere tu.


Ciao. :ciauz:

Celebron
23-08-2011, 16:18
inoltre nel while fai un assegnamento (=) e non una comparazione (==)
e per il resto pieno di errori logici
ti consiglio di studiarti molto meglio come va implementata una lista e solo in seguito riprovare a scrivere il codice magari aiutandoti con dei disegni

giovannimarino
23-08-2011, 17:07
ho fatto questo...credo sia migliorata la situazione...ma ancora c' qualcosa che non va...


int main()
{
struct nodo
{
int ciao;
nodo*next;
};
nodo*testa;
nodo*aux;
nodo*ptr;
nodo*stampa;
testa=aux;
ptr=testa;

do
{
aux=new nodo;
ptr->next=aux;
cin>>ptr->next->ciao;
}while(ptr->next->ciao!=0);

stampa=testa->next;
do
{
cout<<stampa->ciao;
stampa=stampa->next;
}while(stampa->next->ciao==0);
return 0;
}

LeleFT
23-08-2011, 17:59
Originariamente inviato da giovannimarino
ho fatto questo...credo sia migliorata la situazione...ma ancora c' qualcosa che non va...

Continui a non dire cosa c' che non va... onere tuo spiegare quale problema c'.

PS: il tag QUOTE serve a citare del testo postato da altri... il codice va postato usando i tag CODE.


Ciao. :ciauz:

giovannimarino
23-08-2011, 20:03
mi fa inserire i valori ma in output non da i valori messi in input...

clynamen
24-08-2011, 10:34
testa e ptr puntano ad un indirizzo qualunque. aux dovrebbe puntare ad un nodo prima di essere copiato.

MacApp
24-08-2011, 21:01
Originariamente inviato da giovannimarino


int main()
{
...
}while(testa->ciao='$');
}



come ti hanno gi fatto notare... ecco un altro famigerato:
http://www.isidoroghezzi.net/assegnamento_per_sbaglio.html

Nei confronti metti la costante a sinistra e non sbaglierai mai pi, in qualunque linguaggio e sistema operativo!
;-)

Loading