Как я могу сравнить элементы в векторе? - PullRequest
0 голосов
/ 03 июня 2019

Я посмотрел онлайн, и ни один из ответов не решает проблему, с которой я сравниваю элементы из вектора.

Я пытался реализовать функцию bool, но проблема та же.

Я довольно новичок в C ++, так что наберитесь терпения!

ЧАСТЬ 2: Прежде всего, спасибо. Поэтому я изменил свою программу и создал функцию bool, проблема в том, что она не распознается до 5-6 попыток.

#include <iostream>
#include <vector>
#include <time.h>
#include <stdlib.h>
#include <string>

using namespace std;

vector<int> input, compareMe, randomNumbers;
const unsigned int MAX_VEKTORSTELLEN = 5;
const unsigned int UPPER_GRENZE = 49;
const unsigned int LOWER_GRENZE = 1;
unsigned int i, j;
string output;
int random, anzahlRichtige, eingabe;
bool isEqual = false;

string lotto(vector<int>)
{
    if (input[i] < LOWER_GRENZE || input[i] > UPPER_GRENZE)
    {
        output = "Die Zahlen muessen zwischen 1 und 49 liegen! \n";
        input.pop_back();
    }
    else if (input.size() != MAX_VEKTORSTELLEN)
        output = "Es muessen 6 Zahlen uebergeben werde! \n";
    else if (isEqual == true)
        output = "Es duerfen keine doppelten Zahlen vorkommen! \n";
    else
        for (i = 0; i <= MAX_VEKTORSTELLEN; i++)
            srand((unsigned)time(NULL) <= UPPER_GRENZE && (unsigned)time(NULL) > 0);
            random = rand();
            randomNumbers.push_back(random);
    return output;
}
bool compare()
{
    compareMe = input;
    for (i = 0; i < input.size(); i++)
        for (j = 0; j < compareMe.size(); j++)
            if (compareMe[j] == input[i])
                isEqual = true;
    return isEqual;
}
int main()
{
    cout << "insert 6 numbers: ";
    while (cin >> eingabe)
    {
        input.push_back(eingabe);
        lotto(input);
        compare();
        cout << output;
        for (i = 0; i < input.size(); i++) //Debug
            cout << input[i] << ", ";
        continue;
    }
    for (i = 0; i < input.size(); i++)
        cout << input[i];
    system("pause");
    return 0;
}

От строки 34 до строки я не заканчивал кодировать, но это не имеет значения, потому что я застрял раньше.

1 Ответ

0 голосов
/ 03 июня 2019

Все ваши циклы в lotto неверны.Вы проходите мимо конца своих контейнеров.

for (i = 0; i <= input.size(); i++)
//             ^ !!!

Это должно быть <.

Вы получили это право в main.

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