Problema con lista

di il
10 risposte

Problema con lista

Qualcuno mi sa dire cosa c'è di sbagliato in questo esercizio? anche se metto che voglio 3 nodi me ne fa mettere e visualizzare 1 senza neanche farmi mettere gli altri.
--------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>

int i,n,e;

struct nodo{
int valore;
struct nodo *next;
}*head=NULL;

struct nodo *p;

int main() {

printf("quanti numeri vuoi inserire\n");
scanf("%d",&n);

for(i=0;i<n;i++){
p= (struct nodo*)malloc(sizeof(struct nodo));

if(p!=NULL){
printf("che valore vuoi inserire\n");
scanf("%d",&e);

p->valore=e;
p->next=head;
head=p;
}
else
printf("errore");
break;
}
printf("ora visualizzi gli elementi che hai inserito in ordine\n ");

for(i=0;i<n;i++){

printf("elemento numero %d vale %d \n",i,head->valore);
head=head->next;

}
return 0;
}

10 Risposte

  • Re: Problema con lista

    Usate i tag CODE ! Leggete il regolamento ...

    P.S. Quel break non sta nel posto giusto.
  • Re: Problema con lista

    Cosa sono i tag CODE?
  • Re: Problema con lista

    Leggi il regolamento punto 7
  • Re: Problema con lista

    Non ho idea di come fare
  • Re: Problema con lista

    Clicca dove c'è scritto 'Leggi: IProgrammatori.it - Regolamento Forum.
  • Re: Problema con lista

    Prinzi99 ha scritto:


    Non ho idea di come fare
    Ma seriamente?

    Comunque hai corretto il break?
  • Re: Problema con lista

    Seriamente non so come convertire il codice in CODE, nel regolamento c'è scritto che si deve fare ma non come. Comunque togliendo il break mi funziona ma mi fa vedere i numeri che ho in messo al contrario (es se digito 1-2-3, visualizzo 3-2-1)
  • Re: Problema con lista

    Anzi perchè li visualizzo al contrario lo capisco, perchè per come inserisco i nodi i primi che metto diventano gli ultimi.
    Vi ringrazio, ci avevo perso molto tempo, e tutto solo per quel break XD.
  • Re: Problema con lista

    Il break va bene se lo inserisci nell'else. Forse non l'hai scritto tu ma doveva essere (nota le parentesi)
    [CODE] else { printf("errore"); break; } P.S. Per le prossime volte, il codice lo devi scrivere all'interno dei tag CODE che ti vengono scritti automaticamente se vai in modalità avanzata e usi il tasto </>

    E' importante per avere delle risposte
  • Re: Problema con lista

    Si il codice l'ho scritto io , ho dimenticato di mettere le partentesi, ovviamente come avevo fatto era sbagliato perchè non essendoci le partentesi eseguiva solo il primo blocco( il printf) , e il break veniva eseguito alla fine dal ciclo for, facendolo terminare in anticipo.
    Grazie
Devi accedere o registrarti per scrivere nel forum
10 risposte