Ограничение пользовательского ввода в массиве

0

Я работаю над упражнением, когда мне нужно, чтобы пользователь вводил 25 значений, все между 10 и 60. Я хочу проверить, что эти значения находятся между 10 и 60.

void main()    
{   
    int len[25], i;    
    for (i = 0; i < 25; i++)
    {
        cout << "Please enter length: ";
        do
        {    
            cin >> len[i];          
        } while (len[i] >= 10 && len[i] <=60);              
    }       
}

Это то, что у меня есть, но мне кажется, что пользователь не ограничен между 10 и 60. Поскольку, когда я вводил значение, которое больше 60, например, и пытаюсь его вывести позже, я вижу, что это хранятся в len [i] независимо. Любые мысли о том, как я буду исправлять это? Извини, я немного нуоби.

Благодарю!

  • 0
    Ваша проверка диапазона в то время как (...) неверна. Кроме того, имейте функцию, читающую единственное значение, и посмотрите, как обнаруживать и реагировать на сбои потока (ввода).
Теги:
arrays
validation

1 ответ

0
Лучший ответ

То, что вы делаете здесь

cin >> len[i];

Вы можете пойти

int n;
while(cin>>n)
{ 
 if(n<10 || n>60) {
  std::cerr << "value out of range" << std::endl;
  break; // ore may be continue ?
 }
 len[i]=n;
}
  • 0
    Спасибо! Это помогло

Ещё вопросы

Сообщество Overcoder
Наверх
Меню