Odd loop no funciona con% c [duplicado]

Esta pregunta ya tiene una respuesta aquí:

C: Múltiples scanf, cuando ingreso un valor para un scanf se salta el segundo scanf [duplicado] 7 respuestas

Me estoy inclinando por la programación C. He escrito un bucle extraño pero no funciona mientras uso%c inscanf().
Aquí está el código:

#include<stdio.h>
void main()
{
    char another='y';
    int num;
    while ( another =='y')
    {
        printf("Enter a number:\t");
        scanf("%d", &num);
        printf("Sqare of %d is : %d", num, num * num);
        printf("\nWant to enter another number? y/n");
        scanf("%c", &another);
    }
}

Pero si uso%s en este código, por ejemploscanf("%s", &another);, entonces funciona bien.
¿Por qué pasó esto? ¿Alguna idea

Respuestas a la pregunta(4)

Su respuesta a la pregunta