Ciao a tutti, volevo realizzare un programma per l'inserimento dei valori in lista ordinata.Ho scritto il seguente codice ma come inserisco il primo valore si viene a verificare un errore.Mi aiutate a capire dove sbaglio?
#include <stdio.h>
#include <stdlib.h>
typedef struct list{
int info;
struct list *nextptr;
}list;
void inserisci_in_ordine(list**listptr,int value);
void print_list(list*listptr);
int main(int argc, char *argv[])
{
int value;
int scelta;
list *listptr;
do {
printf("\n cosa vuoi fare: \n 1)inserire \n 2)stampa lista");
printf("\n 0) per terminare");
scanf("%d",&scelta);
switch (scelta)
{
case 1rintf("\n digita il valore da inserire-->");
scanf("%d",&value);
inserisci_in_ordine(&listptr,value);
break;
case 2rint_list(listptr);
break;
}
}
while (scelta!=0);
system("PAUSE");
return 0;
}
/************************************************** ****************************/
void inserisci_in_ordine(list **listptr,int value)
{
while((*listptr)->info<value && ((*listptr)!=NULL) )
listptr=&((*listptr)->nextptr);
list *tmpptr;
tmpptr=*listptr;
(*listptr)=(list*)malloc(sizeof(list));
(*listptr)->info=value;
(*listptr)->nextptr=tmpptr;
return ;
}
/****************************stampa**************** ****************************/
void print_list(list *listptr)
{ printf("\n lista:");
do
{
printf("--> %d ",listptr->info);
listptr=listptr->nextptr;
}
while(listptr->nextptr!=NULL);
printf("-->%d",listptr->info);
return;
}
ciao e grazie a tutti!!