ポインターminとmaxがポインターである場所を変更しようとしていますが、「変更」が関数のスコープ外に留まっていないようです(関数の実行後)。関数を実行する前に、*minと*maxを「doublem=0」を指すように設定しました。私は一種のNOOBなので、アドバイスをいただければ幸いです。
int min_max(double * min , double * max , int size , double a[]){                                                                       
int i;                                                                                                                                
printf("\n%lg\t%lg\n", *min, *max);                                                                                                   
min = &a[0];                                                                                                                          
max = &a[0];                                                                                                                          
for (i = 1 ; i < size ; i++) {                                                                                                        
 if (a[i] > *max)                                                                                                                    
  max = &a[i];                                                                                                                      
 else if (a[i] < *min)                                                                                                               
  min = &a[i];                                                                                                                      
 }                                                                                                                                     
 printf("\n%lg\t%lg\n", *min, *max);                                                                                                   
 return 0;                                                                                                                             
}