#include <stdio.h> struct elemento { int val; struct elemento *prossimo; }; void stampa(struct elemento *primo) { struct elemento *p; p = primo; while (p != NULL) { printf("%d ", (*p).val); p = (*p).prossimo; } printf("\n"); } int main() { struct elemento numero[20]; struct elemento *primo = NULL; unsigned int i, n; printf("Quanti numeri vuoi inserire? "); scanf("%u", &n); i = 0; while (i < n) { int val; struct elemento *attuale; printf("Inserisci l'%u-o elemento: ", i); scanf("%d", &val); attuale = &numero[i]; (*attuale).val = val; if ((primo == NULL) || ((*primo).val > val)) { (*attuale).prossimo = primo; primo = attuale; } else { struct elemento *p, *prev; p = primo; while ((p != NULL) && ((*p).val <= val)) { prev = p; p = (*p).prossimo; } (*attuale).prossimo = p; (*prev).prossimo = attuale; } i = i + 1; } stampa(primo); return 0; }