modificato il codice così ma non funziona e in effetti dubito abbia molto sensocodice:#include <stdio.h> #include <stdlib.h> void crealista(); void visualizzalista(); void eliminanumero(); struct elenco { int numero; struct elenco *pun; }; int i,n; struct elenco *p,*paux, *paux2; main() { crealista(); visualizzalista(); eliminanumero(); visualizzalista(); } void crealista() { printf("Quanti numeri vuoi inserire nella lista? "); scanf("%i",&n); if (n==0) p = NULL; else { p = (struct elenco *)malloc(sizeof(struct elenco)); printf("\nInserisci il valore: "); scanf("%i",&p->numero); paux = p; for (i=1;i<=n-1;i++) { paux->pun = (struct elenco *)malloc(sizeof(struct elenco)); paux = paux->pun; printf("\nInserisci il valore: "); scanf("%i",&paux->numero); if (i==n-1) paux->pun = NULL; } } } void visualizzalista() { system("cls"); paux = p; while (paux != NULL) { printf("%i\n",paux->numero); paux = paux->pun; } } void eliminanumero() { int dato; printf("Che numero vuoi eliminare? "); scanf("%i",&dato); paux = p; while (paux != NULL) { if (paux->numero == dato) { paux2 = paux; paux = paux->pun; free(paux2); } paux = paux->pun; } }![]()

Rispondi quotando