Problema con lista

di Anonimizzato26587 il
10 risposte
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

  • Usate i tag CODE ! Leggete il regolamento ...

    P.S. Quel break non sta nel posto giusto.
  • Cosa sono i tag CODE?
  • Leggi il regolamento punto 7
  • Non ho idea di come fare
  • Prinzi99 ha scritto:


    Non ho idea di come fare
    Ma seriamente?

    Comunque hai corretto il break?
  • 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)
  • 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.
  • 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
  • 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