Hola a todos
Al fin pude lograrlo.-
#include <stdio.h>
#include <stdlib.h>
void mostrar(int orden, int dd, int mm);
int main(void){
    int dd,mm,aaaa,orden,ok,ch; dd = mm = aaaa = orden = ok = ch = 0; 
    
    do{
            system("CLS");
	    printf("\n Ingrese dia...: ");
            ok = scanf("%d", &dd) == 1 && dd >= 1 && dd <= 31;
            while ((ch = getchar()) != EOF && ch != '\n');
	}while(!ok);
        
    do{
	mostrar(1, dd, mm);
        printf("\n Ingrese mes...: ");
        ok = scanf("%d", &mm) == 1 && mm >= 1 && mm <= 12;
        while ((ch = getchar()) != EOF && ch != '\n');
    }while(!ok);
        
    do{
        mostrar(2, dd, mm);
        printf("\n Ingrese anio..: ");
        ok = scanf("%d", &aaaa) == 1 && aaaa >= 1 && aaaa <= 9999;
        while ((ch = getchar()) != EOF && ch != '\n');
    }while(!ok);
    printf("\n La fecha ingresada es %d/%d/%d", dd,mm,aaaa);	
    return 0;
} 
void mostrar(int orden, int dd, int mm){
    system("CLS");
    if(orden == 1){
        printf("\n Ingrese dia...: %d", dd);
    }
    if(orden == 2){
        printf("\n Ingrese dia...: %d", dd);
        printf("\n Ingrese mes...: %d", mm);
    }
}  
Igual tiene algo que no me gusta, si se ingresa 10.15 me toma el 10 me parece que voy a tener que modificar la validación.- 
Un saludo.
Daniel