Questo programma mi va in loop infinito. L'errore secondo me sta nel printf del while. Se inserisco scanf all'esecuzione del programma inserisco invio dopo aver inserito i numeri terminanti con 0 ma non mi va avanti ma mi va da capo. Come risolvere? 
  
#include <stdio.h>
int main ()
{
  int x = 0, x1 = 0;
  int min = 10^6;
  int max = - (10^6);
  float media = 0;
  int contatore = 0;
  printf("Inserisci una serie di numeri terminante con 0\n");
  scanf("%d",&x);
  while (x != 0){
                  media = media+x;
                  contatore++;
                  x1 = x;
                  if         (x < min)
                             min = x;
                  else if    (x > min)
                             max = x;
                  printf("%d",x);               // Errore qui
                 }
   printf("Il minimo e' %d\n", min);
   printf("Il massimo e' %d\n", max);
   printf("La media dei numeri e' %f\n", media/contatore);
 return 0;
}