Non so se sia , una soluzione valida , ma te la propongo .
Num di scaffale e posizione nello scaffale , sono due informazioni , ora ti serve avere queste informazioni per ogni copia , si potrebbe utilizzare un array di strutture come campo della lista , allocato dinamicamente in base al numero copie .
ESEMPIO.
codice:typedef struct { short int num_scafale; short int posizione; }copia; struct nodo { char titolo[40]; char autore[40]; char data_pubblicazione[10]; short int numero_copie; copia *c; struct nodo *next; }; typedef struct nodo Lista; Lista* inizializza(Lista *x) { int i; fflush(stdin); printf("inserisci il titolo:"); gets(x->titolo); puts(x->titolo); printf("\n"); printf("inserisci autore:"); gets(x->autore); printf("\n"); printf("inserisci data di pubblicazione: "); gets(x->data_pubblicazione); printf("\n"); printf("inserisci numero copie :"); scanf("%d",&x->numero_copie); i=x->numero_copie; x->c=(copia*)malloc(sizeof(copia)*i);//creo un array di n elementi = a copie for(i=0;i<x->numero_copie;i++)//inizializzo l'array { printf("inserisci scafale copia %d :",i+1); scanf("%d", &x->c[i].num_scafale); printf("\n"); printf("inserisci posizione copia %d :",i+1); scanf("%d",&x->c[i].posizione); } return x; }

Rispondi quotando