scanf Pierwsze pomijanie [duplikat]

To pytanie ma już odpowiedź tutaj:

funkcja getchar jest pomijana 2 odpowiedzi

Próbuję stworzyć prosty program C dla klasy i jednym z wymagań jest to, że muszę używaćscanf/printf dla wszystkich danych wejściowych i wyjściowych. Moje pytanie brzmi: dlaczego mójscanf po tym, jak pętla for w main zostaje pominięta, a program właśnie się kończy.

Oto mój kod

#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;
}

Udało mi się to naprawić, dodając kolejny identycznyscanf po pierwszym, ale wolałbym po prostu użyć tego.

questionAnswers(1)

yourAnswerToTheQuestion