Найти недостающую пару в массиве и вывести число в консоль
Есть одномерный массив из положительных и отрицательных чисел. Нужно найти в массиве те числа, в результате которых получится 0, например 1 и -1. А если такой пары нет, то вывести отдельно недостающее число. Например нашли -4, но не нашли 4, значит, его и выводим отдельно.
Отрывок кода, который работает, но не до конца выводит найденные числа.
for (int i = 0; i < n-1; i++)
{
for (int j = i+1; j < n; j++)
{
if (myArr[i] - myArr[j] == 0 | myArr[j] - myArr[i] == 0) //Если результат 0, выводим в консоль
Console.WriteLine(myArr[i]+ " " +myArr[j]);
else
//Вывести недостающее число,к найденному числу
}
}
Код не прошу, а лишь примерный алгоритм или объяснение, как мне действовать дальше.
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Примерно так, на случай, если все числа уникальны и не встречаются более одного раза, иначе всё сложнее будет:
for (int i = 0; i < n-1; i++)
{
bool флагВсёПрошлиПаруНеНашли = true;
for (int j = i+1; j < n; j++)
{
if (myArr[i] + myArr[j] == 0)
{
//Если результат 0, выводим в консоль
Console.WriteLine(myArr[i]+ " " +myArr[j]);
флагВсёПрошлиПаруНеНашли = false;
break
}
}
//Вывести недостающее число,к найденному числу
if(флагВсёПрошлиПаруНеНашли)
{
// у myArr[i] нет пары, нужно об этом сообщить
}
}