#include<stdio.h>
#include<stdlib.h>
struct studente{
char nome[30];
char cognome[30];
int matricola;
struct studente *next;
};
typedef struct studente studente;
studente* inserisci(studente*head,studente*p){
studente *r=head;
studente *q=head;
while((q!=NULL)&&(q->matricola<p->matricola)){
r=q;
q=q->next;
if(q==head){
head=p;
}else{
r->next=p;
p->next=q;
return head;
}
}
}
void stampa(studente *head){
studente *tmp=head;
while(tmp!=NULL){
printf("\n%s\n%s\n%d",tmp->nome,tmp->cognome,&tmp->matricola);
tmp=tmp->next;
}
}
main(){
int scelta;
studente *p;
studente *head=NULL;
p=(studente*)malloc(sizeof(studente));
while(1){
printf("MENU'\n\n\n");
printf("1)Inserisci informazioni\n2)Stampa informazioni\n0)Esci dal programma\n");
scanf("%d", &scelta);
if(scelta==1){
if(p==NULL){
printf("\nNon ci sono elementi presenti in lista\n");
}else{
printf("Nome: ");
scanf("%s",p->nome);
printf("\nCognome: ");
scanf("%s",p->cognome);
printf("\nMatricola: ");
scanf("%d",&p->matricola);
head=inserisci(head,p);
}
}
if(scelta==2){
stampa(head);
}
if(scelta==0){
char esc;
esc=getchar();
return 0;
}
}
}
Non mi stampa la lista ma non capisco dove sbaglio :'( un aiutino?