Цикл, запрашивающий пользователя для ввода в массив - PullRequest
2 голосов
/ 04 августа 2011

Вы все очень помогли мне в прошлом, я возвращаюсь за дополнительной помощью!

Я работаю над другим заданием по С ++ для школы.Я должен собрать 20 чисел от 10 до 100 от пользователя и сравнить их все и распечатать те, которые не являются дубликатами.

Часть, на которой я застрял, пытается зациклить пользовательский ввод, пока у меня не будет всех 20 чисел.То, что у меня есть, имеет для меня смысл, но, видимо, не работает.Извините за нелепые комментарии, я должен комментировать все для класса.

Любой свет, который вы можете пролить на мою глупость, будет потрясающим!Большое вам спасибо!

int FindDuplicates[20]; // my little array
int UserInput; // the number from the user to compare
int count; // the number of numbers entered

for(count=0; count<FindDuplicates; count++;) // what I am trying to do is have count start at 0. as long as it is less than the max array, add 1 to the count
{
    cout << "Please enter a number between 10 and 100: "; // print out what I would like
    cin >> UserInput; // get the number from the user
}

Ответы [ 4 ]

3 голосов
/ 04 августа 2011

Ваша проблема в том, как ввести 20 действительных чисел?Думаю, цикл do while поможет вам.

int FindDuplicates[20]; // my little array
int UserInput; // the number from the user to compare
int count = 0; // the number of numbers entered

do
{
    cout << "Please enter a number between 10 and 100: "; // print out what I would like
    cin >> UserInput; // get the number from the user

    if (UserInput >= 10 && UserInput <= 100)
    count++;
} while (count < 20);

Надеюсь, что это поможет вам.

3 голосов
/ 04 августа 2011
for( int count = 0; count < 20; count++ )
{
    cout << "Please enter a number between 10 and 100: ";
    cin >> userInput;

    FindDuplicates[ count ] = userInput;
}

Вы также можете проверить правильность ввода с помощью:

while( UserInput < 10 || UserInput > 100 )
{
    cout << "Please enter a number between 10 and 100: ";
    cin >> UserInput;
}

Если вы делаете это, просто убедитесь, что вы инициализировали UserInput для чего-то.Итак:

int FindDuplicates[ 20 ];
int UserInput = 0;
int count = 0;

//count has already been defined, so no need to do it again
for( ; count < 20; count++ )
{
    //Keep asking until valid input is given
    while( UserInput < 10 || UserInput > 100 )
    {
        cout << "Please enter a number between 10 and 100: ";
        cin >> userInput;
    }

    //Add userInput into the array
    FindDuplicates[ count ] = UserInput;
}
1 голос
/ 04 августа 2011

В строке ниже есть синтаксическая ошибка, проверьте, как работают операторы.Там также проблема с <FindDuplicates.Убедитесь, что вы понимаете, что означает эта переменная.

for(count=0; count<FindDuplicates; count++;)

1 голос
/ 04 августа 2011

FindDuplicates даст вам указатель, указывающий на массив (см. this ), а не размер. Вы должны использовать

for(count=0; count<20; count++;)

вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...