What you send to it is not output immediately, but is stored in an internal array. That array is not output to the screen until the buffer is "flushed".
Once the printf implementation decides it has enough data (which is usually after several calls, or one large call, or on a newline), it will automatically flush.
If you want to manually flush, there's a fflush() function:
1 2
printf("%.2d", x%60); // <- may or may not actually output to the screen
fflush(stdout); // <- now it definitely will be output to the screen