Я нахожу это очень странным.Насколько я могу сказать, в этом утверждении нет ничего плохого, но при его выполнении оно всегда оценивается как ложное, независимо от того, какое число я ввожу.
if(temp>=1 && temp<=5)
temp
- это целое число, которое я хочу толькобыть числом между 1-5.Итак, первая половина выражения выглядит так: if(temp is equal to or greater then one AND if temp is less then or equal to 5).
Я думаю, это должно вернуть true, если вы, например, введете 3, так как это больше 1 и меньше 5, но это не так.Что мне не хватает?:)
РЕДАКТИРОВАТЬ полный цикл:
int temp;
int arrayStorlek=0;
int tempBytesIndex[5];
for(;;){
temp=getchar();
if(temp=='n' || temp=='N'){
printf("Du är nöjd");
beraknaHand(kortHand);
}
else{
printf("Hära \n%i\n ", temp);
system("pause");
if( isdigit(temp)){
if(temp<=5 && temp>=1){
printf("temp är större än 0 och mindre än 5");
tempBytesIndex[i++] = temp-'0';
arrayStorlek++;
}
else
printf("du måste ange ett intervall mellan 1-5");
}
else if (temp=='\n' || temp==EOF){
printf("Slut på inlästa filer");
system("pause");
break;
}
else
printf("\n Du får bara ange siffror, eller ange N om du är nöjd");
}
При печати переменной temp
возвращается значение выше 50, даже если я ввожу 3. Как это может быть?:)