2015-09-22 2 views
2

Пользователь должен ввести число от 1 до 15 включительно. Но мой код принимает каждое число. Даже если я введу отрицательное число, оно не вызывает повторного ввода пользователя. Что я должен изменить в коде? Благодаря!Вход не работает должным образом

int enterNum(){ 

    printf("Enter a number between 1 and 15.\n"); 
    int input = 0; 
    scanf(" %d", &input); 

    while(input < 1 && input > 15){ 
     printf("Invalid input! Please try again!"); 
     scanf("%d", &input); 
    } 
    return input; 
} 
+1

Используйте петлю. Вы используете какую-то странную рекурсию. Также всегда проверяйте результат 'scanf'! – Olaf

+0

число не может быть меньше 1 и больше 15 в то же время !, scanf также не идеально подходит для некоторых исследований по другим параметрам ввода пользователя. Google - ваш друг – tesseract

ответ

2

input < 1 && input > 15 никогда не будет правдой.

Используйте вместо этого input < 1 || input > 15.

Смежные вопросы