char
используется для символов, поэтому, если вы введете 5, scanf
назначит символ '5' переменной cUserInput
. Если реализация C использует ASCII-кодирование для символов, тогда «5» будет равно 53, которое никогда не будет равно iRandomNum
.
Решением является использование int
, если вы хотите числа:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <time.h>
int main()
{
int iRandomNum = 0;
int cUserInput = 0;
srand(time(NULL));
iRandomNum = (rand() % 10) + 1;
printf("Guess a number between 1 to 10:");
scanf("%d", &cUserInput);
if(cUserInput>=1 && cUserInput<=10)
{
if(cUserInput==iRandomNum)
printf ("Correct!");
else
printf("The right answer was %d", iRandomNum);
}
else
printf("You did not enter a digit.");
return 0;
}