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;
}
}
}