¿Por qué las sentencias scanf () + printf () intercaladas dan como resultado que las llamadas scanf () se ejecuten primero y luego las llamadas printf ()?

¿Puede por favor explicar una cosa en el siguiente código:

#include<stdio.h>

int main()
{
    int n;char ch,ch1;
    scanf("%d\n",&n);
    printf("d-%d \n",n);

    scanf("\n%c",&ch);
    printf("ch-%d \n",ch);

    scanf("\n%c",&ch1);
    printf("ch1-%d \n",ch1);

    printf("%d %d %d\n",n,ch,ch1);
    return 0;
}

¿Por qué es que después de ingresar el valor de n, solicita directamente el valor de ch y luego ejecuta directamente las sentencias para imprimir sus respectivos valores, es decir, las sentencias:

printf("d-%d \n",n);
printf("ch-%d \n",ch);

Respuestas a la pregunta(2)

Su respuesta a la pregunta