Другие языки программирования и технологии

КАК РАБОТАЕТ ЭТОТ КОД НА С++?

bool f = false;
for(int i(0);i < n;i++)
{
cin >> a[i];
for(int j(i+1);j <=n;j++)
if(a[i] == a[j])f = true;
if (f) break; cout << "hlo";
}

Он ищет есть ли похожие элементы в массиве. А как он работает?
bool f = false; пока нет схожих элементов, логической переменной f присваивается значение false - нет, тип переменной булева
for(int i(0);i < n;i++) открываем цикл с переменной счётчиком i целого типа integer
{
cin >> a[i];
for(int j(i+1);j <=n;j++) сравниваем все переменные
if(a[i] == a[j])f = true; если сравнение удачное, логической переменнoй f присваем true
if (f) break; cout << "hlo";
}
Сергей Палков
Сергей Палков
333
Лучший ответ
Сергей Федотов Вот мне не понятно момент, где я сравниваю все переменные.. Такой шок, сам написал, сам не могу понять: /
Ну ищет не похожие, а одинаковые как-бы и по-любому - он неправильно работает.

Вы вводите в цикле по i значения в массив.
И тут-же ниже крутите цикл по массиву, начиная со следующего. А какое следующее, если оно ещё не введено?. Те там незаполненные ещё значения (либо 0, либо "мусор" ("случайные" значения), смотря что у Вас там выше и как массив объявлен)

+ явный выход за пределы массива (<=n)

Цикл поиска не оптимизирован - Вы нашли что есть совпадение, запомнили, что оно есть. ок. и дальше крутите цикл до конца. А зачем? Нашли, присвоили, break.
Сергей Федотов Так и есть, вот условие для остановки
Работает перебор, внешний цикл устанавливает позицию i на начальный элемент, внутренний на позицию j = i+1, внутренний цикл по порядку до конца границы массива проверяет число относительно позиции i, если в результате сравнения будет найдено идентичное число - устанавливается флаг в true,после завершения внутреннего цикла, если флаг был установлен произойдет выход из внешнего цикла, программа закончена. Иначе напечатается "hlo", и внешний цикл перейдет на позицию i+1, и т. д пока не будет достигнут конец массива.
ну сравнивает каждый элемент со следующим. если хотя бы одно совпадение - то ставит флаг (bool) и выход из цикла