Salve a tutti, ho cercato in giro in rete e non riesco a trovare da nessuna parte alcuna guida che riesca a soddisfare le caratteristiche del mio programma.
Quello che non riesco a trovare/fare dopo aer completato la funzione stampa è:
1. L'ordinamento della lista in ordine crescente e decrescente
2. Aggiungere elementi alla lista dopo che la lista è stata già creata
3. Eliminare elementi della lista
Questo è il programma che al momento ho scritto... Grazie in anticipo.
codice:#include <stdio.h>#include <stdlib.h> #include <string.h> struct data { int a; char n[20]; struct data *next; }; //si crea la testa della lista struct data *crea(){ char risp[20]; struct data *head, *pointer; head=(struct data*)malloc(sizeof(struct data)); printf ("Inserisci il nome: "); scanf("%s",head->n); printf ("inserire l'eta': "); scanf ("%i", &head->a); pointer=head; while (pointer->next!=NULL){ printf("Vuoi inserire un altro elemento?\n"); scanf("%s", risp); if(strcmp(risp,"si")==0){ pointer->next=(struct data*)malloc(sizeof(struct data)); pointer=pointer->next; printf ("Inserisci il nome: "); scanf("%s",pointer->n); printf ("inserire l'eta': "); scanf ("%i", &pointer->a);} else if(strcmp(risp,"no")==0) pointer->next=NULL; else printf ("Devi mettere si o no.\n");} return head;} //dobbiamo fare la funzione stampa void stampa (struct data *stampando){ while(stampando!=NULL){ printf("L'eta' di %s e' %i\n", stampando->n, stampando->a); stampando=stampando->next; } } int main(){ struct data *lista; int g=1; while (g<6 && g>0 ){ printf("Cosa vuoi fare?\n1. Crea una lista\n2. Stampa la lista\n3. Termina programma "); scanf("%i",&g); switch(g){ case 1: lista=crea(); break; case 2: stampa(lista); break; case 3: return 0; break; } } }

Rispondi quotando