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.