codice:#include <stdio.h> #include <stdlib.h> #include <string.h> struct elem{ char cod[5]; int imp; struct elem *next; }; struct elem *corrente; struct elem *primo, * nuovo; void inser(void); void visual(void); void sistema(void); main() { int sc; primo = NULL; while (sc != 3) { printf("1-Inserimento struct alla catena\n2-Visualizzazione catena\n3-Uscita\n"); printf("Scegli un'operazione da eseguire\n"); scanf("%d", &sc); switch (sc) { case 1: inser(); system("cls"); break; case 2: visual(); getch(); system("cls"); break; case 3: system("cls"); printf("Uscita dal programma"); break; default: printf("Scelta errata\n"); getch(); system("cls"); } } } void inser() { char mycod[5] = "\0"; int myimp = 0; nuovo = malloc(sizeof (struct elem *)); if (nuovo != NULL) { printf("Inserisci un codice\n"); scanf("%s", mycod); printf("Inserisci un importo\n"); scanf("%d", &myimp); strcpy(nuovo->cod, mycod); nuovo->imp = myimp; nuovo->next = NULL; sistema(); } else printf("Spazio in RAM insufficiente\n"); } void sistema() { if (primo == NULL) primo = nuovo; else { corrente = primo; while (corrente->next != NULL) corrente = corrente->next; corrente->next = nuovo; } } void visual() { for (corrente = primo; corrente!= NULL; corrente = corrente->next) printf("%s\t%d\n", corrente->cod, corrente->imp); }