Sorunum, karakterin scanf'inin atlandığını ve programın tekrar tekrar tekrar programlanıp tekrar edilmediğini görmek için taramayı kontrol etmediğini ya da neden böyle olmadığını kontrol etmemesidir. scanf(" %c", &rep);
içinScanf Tarama karakterini atla
#include <stdio.h>
#include <stdlib.h>
int main()
{
int number,check;
char rep;
printf("Program to check if number is even or odd");
while((rep!='N') || (rep!='n'))
{
printf("\n\nPlease enter the number: ");
scanf("%d",&number);
check = number%2;
if(check != 0)
printf("\nNumber is odd.");
else
printf("\nNumber is even.");
printf("\n");
printf("Do you want to enter number again?\nY=yes\tN=no\n");
scanf("%c", &rep);
}
return 0;
}
Burada yüzlerce (hatta belki binlerce) yinelenen var, ancak sorunun özü, sayıyı okuduktan sonra, satır içi giriş arabelleğindendir. Sonraki "scanf" çağrısının neyi okuduğu Gues ... –
ve 'char rep = 0;' ... '(rep! = 'N' && rep! = 'N') {' – BLUEPIXY