Как сделать проверку чисел в двух массивах?
Суть программы угадать число, которое загадал компьютер, и в процессе отгадывания должно печататься, сколько чисел уже угадали и на тех ли они позициях. Но почему то работает через раз.
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (playerNum[i] != playerNum[(i + 1) % 3])
if (compNum[i] == playerNum[j])
++guessed;
}
if (compNum[i] == playerNum[i])
inItsPlace++;
}
cout << "Угадано: " << guessed << ". На своих местах: " << inItsPlace << '\n';
Числа трехзначные, в массиве из трех элементов. Как сделать, чтобы не было повторений(например надо отгадать число 793, при вводе 707 почему то пишет, что угадано 0, хотя должно 1)
Ответы (1 шт):
Автор решения: lith.al
→ Ссылка
for (int i = 0; i < 3; i++) {
if (compNum[i] == playerNum[i]) {
inItsPlace++;
}
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (compNum[i] == playerNum[j]) {
++guessed;
playerNum[j] = -1;
break;
}
}
}
cout << "Угадано: " << guessed << ". На своих местах: " << inItsPlace << '\n';