Ciao a tutti sto cercando di creare e visualizzare due liste il problema solo che il codice che ho sviluppato stampa solo il primo elemento delle due liste e poi dei numeri tipo 9713624 posto il codice
Esempio:codice:#include <stdio.h> #include <malloc.h> struct elemento{ int val; struct elemento *succ; }; struct elemento *crealista(); void visualizza(struct elemento *); main() { struct elemento *puntlista1,*puntlista2; printf("Inserisci la prima lista:\n\n"); puntlista1=crealista(); printf("\nInserisci la seconda lista:\n\n"); puntlista2=crealista(); printf("\nVisualizzazione prima lista: \n\n"); visualizza(puntlista1); printf("\nVisualizzazione seconda lista: \n\n"); visualizza(puntlista2); printf("\nPremi invio per uscire..."); getchar(); getchar(); } struct elemento *crealista() { int i,n; struct elemento *primo,*corpo; printf("Quanti valori vuoi inserire?: "); scanf("%d",&n); primo=(struct elemento *)malloc(sizeof(struct elemento)); printf("Inserisci il 1%c valore: ",248); scanf("%d",&primo->val); corpo=primo; for(i=2;i<=n;i++){ corpo->succ=(struct elemento *)malloc(sizeof(struct elemento)); corpo=corpo->succ; printf("Inserisci il %d%c valore: ",i,248); scanf("%d",&corpo->succ); } corpo->succ=NULL; return(primo); } void visualizza(struct elemento *p) { while(p!=NULL){ printf("%d --->",p->val); p=p->succ; } printf("NULL\n\n"); }
inserisco la lunghezza della prima lista : 3
inserisco gli elementi 5 , 4 , 2
inserisco la lunghezza della seconda lista: 4
inserisco gli elementi: 1 , 3 , 6 , 8
Stampa questo:
Prima lista: 5---> 9713624---> 9713624---> NULL
Seconda lista: 1---> 9713624---> 9713624---> 9713624--->NULL
Come posso fare per risolvere il problema??
Grazie per l'aiuto.![]()

Rispondi quotando