2015-10-22 3 views
0

Итак, у меня есть этот немного кода, который в принципе просто должен сравнить число, которое пользователь вводит в числа, уже находящиеся в массиве. Если номер один и тот же, то следует сказать "Number is valid" и "Invalid".Программа сбой из-за инструкции if

const int size=18; 
int list[size]={5658845,4520125,7895122,8777541,8451277,1302850,8080152,4562555,5552012, 
5050552,7825877,1250255,1005231,6545231,3852085,7576651,7881200,4581002}; 
bool found = false; 
int userNumber; 


cout<<"Enter your number: "; 
cin>>userNumber; 


for(int x = 0;x < 18; x++) 
{ 
    if(list[userNumber] == list[x]) 
     found = true; 
} 
if(found) 
    cout<<"The number is valid."<<endl; 
else 
    cout<<"The number is invalid."<<endl; 

return 0; 

все же, когда инструкция if срабатывает, программа вылетает. Я пробовал комментировать его, и он отлично работает. Я предполагаю, что это просто причина того, что я тупица и чего-то не хватает, но я смотрел на это в течение прошедшего часа, и я не могу понять, что я делаю неправильно.

+0

Что вы вводили в 'userNumber', когда вы его пробовали? –

+0

забыл добавить эту часть, если я ввожу любое число от 1 до 17, это нормально. Но в тот момент, когда я пытаюсь использовать 5658845, у него есть проблема. – RyanJohnTyler

+8

Я думаю, что вы имеете в виду: if (userNumber == list [x]) – slipperyseal

ответ

4

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

if(userNumber == list[x]) 
Смежные вопросы