scanf.Считывание символов

Есть такой код:

scanf("%d", n);
while (n)
{
    scanf("%c", &ch);
    printf("character: %c\n", ch);
    n--;
}

После ввода значения переменной n и перехода на новую строку, у меня вместо вызова ф-ии scanf("%c", &ch) по какой - то причине сначала вызывается printf("character: %c", ch).
В итоге, я получаю такой вывод:

3
character:
abc
character: a
character: b    

Должно быть:

3
abc
character: a
character: b
character: c

Примечание: если я добавляю после спецификатора формата ф-ии scanf("%d\n", &n) знак перехода на новую строку \n, то все работает корректно. Почему так происходит?


Ответы (0 шт):