Я нахожу это очень странным. Насколько я могу сказать, что нет ничего плохого в этом утверждении, но при его запуске он всегда оценивает значение false, независимо от того, в какое число я вхожу.Что не так с этим правильным условием? :)
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, но это не так. Что мне не хватает? :)
EDIT полный цикл:
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. Как это может быть? :)
Выглядит хорошо для меня. Отправьте примерный код, используя это! –
У вас есть точка с запятой. – pmg
Попробуйте добавить printf ("% d \ n", temp); чтобы узнать, какое значение он считает темпом. Одна из возможностей заключается в том, что temp содержит символ «3» вместо номера 3. –