Buenas gente, tego que hacer un programa que muestre ordenada una lista de numeros enteros. Muchas gracias, Un saludo.
/* Programa que meta ordenados los numeros a una lista */
#include<stdio.h>
#include<stdlib.h>
    struct nodo{
        int numero;
        struct nodo *siguiente;
    };  
int  main(void){  
    void IntroducirOrden(struct nodo *primero, int num);
    void Mostrar(struct nodo*primero);    
    struct nodo *primero;
    primero=NULL;
    int opcion;
    int num;    
    do{        
        printf("MENU.n");
        printf("1.-Introducir Numero.n");
        printf("2.-Mostrar lista.n");
        printf("3.-Salir.n");
        printf("OPCION:");
        scanf("%d",&opcion);    
    switch(opcion){        
        case 1: 
                printf("Introduzca un numero:");
                scanf("%d",&num);   
                system("cls");
                IntroducirOrden(primero,num);
        break;
        case 2:
                Mostrar(primero);
        break;        
        case 3:        
        break;        
        default :
            printf("Opcion Incorrecta.n ");
        break;      
      }/*switch */  
}while(opcion!=3);
}/*main */
void IntroducirOrden(struct nodo *primero, int num){    
    struct nodo *nuevo;
    struct nodo *anterior;
    struct nodo *actual;    
/* Busoc la posicion en la que debo insertar el nodo */
    anterior=actual=primero;    
    while((actual!=NULL)&&(actual->numero<num)){        
        anterior=actual;
        actual=actual->siguiente;
    }    
/* Creo el nodo */
nuevo=(struct nodo*)malloc(sizeof(struct nodo));
nuevo->numero=num;
/* Ajusto los punteros */
if((actual==NULL)||(anterior=actual)){ /* Inserto al principio */
        nuevo->siguiente=anterior;
        primero=nuevo;
}else{   /* Inserto entre medias o al final */    
    nuevo->siguiente=actual;
    anterior->siguiente=nuevo;
}
}
void Mostrar(struct nodo*primero){    
    struct nodo *auxiliar;    
    auxiliar=primero;    
    while(auxiliar!=NULL){
        printf("%d",auxiliar->numero);
        auxiliar=auxiliar->siguiente;
    }
}