Non funziona neanche così
codice:
void ordine(struct elemento *p)
{
     int valore;
     struct elemento *aux,*temp;
     aux=p->succ;
     while(aux!=NULL){
                      temp=aux;
                      while(temp!=NULL){
                                        if(p->val>aux->val){
                                                            valore=p->val;
                                                            p->val=aux->val;
                                                            aux->val=valore;
                                                            temp=temp->succ;
                                                            }
                                        aux=aux->succ;
                                        }
                      }