Succede perché la printf usa un buffer ... usa una

fflush(stdout);

se vuoi forzare la visualizzazione dopo la printf