ok grazie e scusate...posto di seguito nuovamente tutto il codice ...
Questo è il mio FILE HEADER:
FILE-MAIN.C:codice:struct persona{ char nome[50]; char cognome[50]; }; typedef struct persona Persona; struct elemSCL{ Persona elemento; struct elemSCL* next; }; typedef struct elemSCL nodoFilaSCL; typedef nodoFilaSCL* filaSCL; void creaFila(filaSCL* fila,int n); filaSCL aggiungi(filaSCL fila,Persona p); void stampa(filaSCL fila); filaSCL raccomanda(filaSCL fila, Persona p, const int n); int lunghezza(filaSCL fila);
FILE.C:codice:int main(){ filaSCL fila3=NULL; creaFila(&fila3,3); const int n=2; Persona p1={"Giulia","G"}; raccomanda(fila3,p1,n); stampa(fila4); printf("\n"); return 0; }
codice:void creaFila(filaSCL* fila,int n){ if(n!=0){ Persona c; filaSCL temp=(nodoFilaSCL*)malloc(sizeof(nodoFilaSCL)); printf("inserisci nome:"); scanf("%s",c.nome); printf("inserisci cognome:"); scanf("%s",c.cognome); temp->elemento=c; temp->next=*fila; *fila=temp; creaFila(fila,n-1); } filaSCL aggiungi(filaSCL fila,Persona p){ filaSCL temp=(nodoFilaSCL*)malloc(sizeof(nodoFilaSCL)); temp->elemento=p; temp->next=NULL; filaSCL ultimo=fila; while(ultimo->next!=NULL){ ultimo=ultimo->next; } ultimo->next=temp; filaSCL temp1=fila; return temp1; } filaSCL raccomanda(filaSCL fila, Persona p, const int n){ int len=lunghezza(fila); if(n>len){ return aggiungi(fila,p); } else{ int num=n; filaSCL ultimo=fila; while(num!=1){ ultimo=ultimo->next; num--; } filaSCL temp=(nodoFilaSCL*)malloc(sizeof(nodoFilaSCL)); filaSCL temp1=ultimo; temp->elemento=p; temp->next=temp1; ultimo=temp; filaSCL fila2=fila; return fila2; } } int lunghezza(filaSCL fila){ if(fila!=NULL){ return 1+lunghezza(fila->next); } return 0; } void stampa(filaSCL fila){ if(fila!=NULL){ printf("%s %s ",fila->elemento.nome,fila->elemento.cognome); stampa(fila->next); } }

Rispondi quotando