Ho questo programma:

codice:
#include <stdio.h>

int main()
{
  double x;
 
  printf("inserire x\n");
  scanf("%lf", &x);
  printf("hai scritto: %lf",x);

  do{ } while (1);

 printf("fine");
}
;

Essendo il loop infinito, chiaramente mi aspetterei che: 1) fa il primo print; 2) fa lo scanf; 3) fa il secondo print; 4) va in loop;
E invece fa: 1) fa il primo print; 2) fa lo scanf; 3) va in loop;

Perchè salta il secondo printf!! Non me lo riesco a spiegare.....
[Compilo con gcc in Ubuntu]

Grazie!