Si la struct di cella e la stessa di elemento per il codice ora lo riscrivo:
struct elemento *crea_lista()
{
struct elemento *p,*punt,*inizio_riga,*fine_riga;
int i,n;
printf("\n Specificare il numero di elementi: ");
scanf("%d", &n);
if(n==0)
p = NULL;
else
{
p=(struct elemento *)malloc(sizeof(struct elemento));
printf("\nInserisci il primo valore: ");
scanf("%d", &p->inf);
p->prev=NULL;
p->su=NULL;
inizio_riga=p;
punt=inizio_riga;
for(i=2;i<=n;i++)
{
if(i>=2 && i<=5)
{
punt->next=(struct elemento*)malloc(sizeof(struct elemento));
printf("\npunt->inf= %d\n",punt->inf);
printf("\npunt->next->prev->inf= %d\n",punt->inf);
punt->next->prev=punt; //punt->next (e il nodo successivo)->prev lo collego al nodo precedente
printf("\npunt->inf= %d\n",punt->inf);
//printf("\nStampa il punt->next->prev: %d", punt->next->prev);
printf("\n Prima del punt=punt->next Stampa il punt: %d\n", punt->inf);
punt = punt->next;
printf("\n Dopo il punt=punt->next Stampa il punt: %d\n", punt->inf);
printf("\nInserisci il %d elemento: ", i);
scanf("%d", &punt->inf);
punt->su=NULL;
printf("\npunt->inf= %d\n",punt->inf);
printf("\npunt->prev->inf= %d\n",punt->prev->inf);
//printf("\npunt->next->inf= %d\n",punt->next->inf);
}
if(i==6)
{
printf("\nSto inserendo il 6 elemento\n");
fine_riga=punt;
fine_riga->next=(struct elemento*)malloc(sizeof(struct elemento));
printf("\n Prima della doppia puntata fine_riga->inf= %d\n",fine_riga->inf);
fine_riga->next->prev=fine_riga; //punt->next (e il nodo successivo)->prev lo collego al nodo precedente
printf("\n Dopo della doppia puntata fine_riga->inf= %d\n",fine_riga->inf);
//punt->giu->su=punt;
fine_riga = fine_riga->next;
//printf("\n Dopo il punt=punt->next Stampa il punt: %d", punt);
printf("\nInserisci il %d elemento: ", i);
scanf("%d", &fine_riga->inf);
fine_riga->su=NULL;
fine_riga->next=NULL;
//fine_riga=punt;
printf("\nfine_riga->next->inf= %d\n",fine_riga->next);
}
else if(i==7)
{
printf("\nSto inserendo il 7 elemento\n");
inizio_riga=p;
inizio_riga->giu=(struct elemento*)malloc(sizeof(struct elemento));
inizio_riga->giu->su=inizio_riga;
printf("\nmmmm\n");
inizio_riga = inizio_riga->giu;
//printf("\n Dopo il punt=punt->next Stampa il punt: %d", punt);
printf("\nInserisci il %d elemento: ", i);
scanf("%d", &inizio_riga->inf);
printf("\ninizio_riga->su->inf= %d\n",inizio_riga->su->inf);
//inizio_riga->prev=NULL;
punt=inizio_riga;
}
else if(i>=8 && i<=11)
{
printf("\nSto inserendo l 8 elemento\n");
printf("\ninizi_riga->inf= %d\n",inizio_riga->inf);
//punt=inizio_riga;
printf("\npunt->inf= %d\n",punt->inf);
punt->next=(struct elemento*)malloc(sizeof(struct elemento));
printf("\npunt->inf= %d\n",punt->inf);
printf("\nPrima del punt->next->prev->inf= %d\n",punt->next->prev->inf);
punt->next->prev=punt;
printf("\nDopo del punt->next->prev->inf= %d\n",punt->next->prev->inf);
/* printf("\npunt->su->inf= %d\n",punt->su->inf);
printf("\nPrima del punt->su->giu->inf= %d\n",punt->su->giu->inf);
punt->su->giu=punt;
printf("\nDopo del punt->su->giu->inf= %d\n",punt->su->giu->inf);*/
punt=punt->next;
//printf("\n Dopo il punt=punt->next Stampa il punt: %d", punt);
printf("\nInserisci il %d elemento: ", i);
scanf("%d", &punt->inf);
printf("\npunt->inf= %d\n",punt->inf);
//punt->su=punt;
printf("\npunt->prev->inf= %d\n",punt->prev->inf);
//printf("\npunt->su->inf= %d\n",punt->su->inf);
}
} // chiudo il for
punt->next = NULL; // marcatore fine lista
} // chiudo l'if-else
return(p);
}
ecco fatto ora qndo spingo invia risposta non so se me lo mette tutto daccapo ma mi sa di si,cmq le parentesi sono giuste