scanf Saltando [duplicado]

Esta pregunta ya tiene una respuesta aquí:

scanf la función getchar se omite 2 respuestas

Estoy tratando de hacer un programa C simple para una clase y uno de los requisitos es que debo usarscanf/printf para todas las entradas y salidas. Mi pregunta es por qué miscanf después de omitir el bucle for en el main y el programa simplemente termina.

Aquí está mi código

#include <stdio.h>

void main() {
    int userValue;
    int x;
    char c;

    printf("Enter a number : ");
    scanf("%d", &userValue);
    printf("The odd prime values are:\n");
    for (x = 3; x <= userValue; x = x + 2) {
        int a;
        a = isPrime(x);
        if (a = 1) { 
            printf("%d is an odd prime\n", x);
        }
    }   
    printf("hit anything to terminate...");
    scanf("%c", &c);    
}

int isPrime(int number) {
    int i;
    for (i = 2; i < number; i++) {
        if (number % i == 0 && i != number)
            return 0;
    }
    return 1;
}

ude "arreglarlo" agregando otro @ idéntiscanf después del primero, pero preferiría usar solo el.

Respuestas a la pregunta(1)

Su respuesta a la pregunta