Как вывести только 1 сообщение, что элемент в первом векторе не находиться во втором
игра корова и быки. элементы в первом векторе задаются рандомно, а во второй человек вводит цифры, все работает кроме вывода, что это число нету в первом векторе (он выводить очень много раз) а нужно только 1 раз.
vector<int> v1(4);
srand((unsigned)time(NULL));
for (int i = 0; i < v1.size(); ++i) {
v1[i] = rand() % 10;
cout << v1[i] << endl; //для контроля
}
vector<int> v2;
int x;
while (cin >> x)
v2.push_back(x);
for (int i = 0; i < v1.size(); ++i){
if (v2[i] == v1[i])
cout << "Number " << i+1 << " is " << v2[i] << " bull\n";
else {
for (int j = 0; j < v2.size(); ++j) {
if (v1[i] == v2[j])
cout << "Number " << i + 1 << " is " << v1[i] << " cow\n";
else
cout << v2[i] << " not contained\n"; // вот здесь, выводит много раз
}
}
Ответы (1 шт):
Автор решения: n1tr0xs
→ Ссылка
Нужно сделать bool переменную:
...
else {
bool flag=false;
for (int j = 0; j < v2.size(); ++j) {
if (v1[i] == v2[j]){
cout << "Number " << i + 1 << " is " << v1[i] << " cow\n";
flag=true;
}
}
if(!flag) cout << v2[i] << " not contained\n";
}