Я написал этот код. Он должен прочитать целое число от 1 до 4 (определяется как нижняя и верхняя границы функции), и если условие не выполняется, выводит некоторое сообщение об ошибке и снова задает вопрос.
#include <stdio.h>
#include <stdlib.h>
int varcheck(double x, char z, int lowerbound, int upperbound);
int main(){
double playerCount;
char i;
printf("Insert Number of Players: ");
scanf("%lf%c", &playerCount, &i);
while(varcheck(playerCount, i, 1, 4) == 0){
printf("Invalid Number of Players\n");
printf("Insert Number of Players: ");
scanf("%lf%c", &playerCount, &i);
}
// ...Code continues...
}
int varcheck(double x, char z, int lowerbound, int upperbound){
double r = 0;
r = x - (int)x; /*If r == 0 then its not decimal number*/
if(r != 0 || z != '\n' || x < lowerbound || x > upperbound){
return 0;
} else {
return 1;
}
}
Функция входит в какой-то странный цикл, кто-нибудь может мне помочь исправить это?