Дан массив из n целых чисел. Выведите те его элементы, которые встречаются в списке только один раз. Элементы следует выводить в том же порядке, в котором они встречаются в списке. Входные данные
В первой строке записано число n (n ≤ 100). В следующей строке записано n целых чисел. Все числа по модулю не превосходят 100.
Выходные данные
Вывести список уникальных элементов.
Входные данные
7
3 5 -7 7 5 -9 -4
Выходные данные
3 -7 7 -9 -4
Язык не указан, предоставляю решение на C#:
class sample
{
public static void WrongData()
{
Console.WriteLine("Введите корректные значения.");
Console.ReadLine();
return;
}
}
class Program
{
static void Main(string[] args)
{ string StringCount;
Console.WriteLine("Введите кол-во элементов массива ( от 2 до 100 ) .");
StringCount = Console.ReadLine();
if (!(int.TryParse(StringCount, out int Count)
&& Count >= 2 && Count <= 100)) sample.WrongData();
int[] Array = new int[Count];
// заполнение массива рандомными числами:
var Randomizer = new Random();
int RandomNumber;
for(int i = 0; i < Count; i++)
{
RandomNumber = Randomizer.Next(-1000, 1000);
Array[i] = RandomNumber;
}
var ListForNumbers = Array.ToList();
var ListForPublic = new List<int>();
for(int z = 0; z < ListForNumbers.Count; z++)
{
for(int s = ( z + 1 ); s < ListForNumbers.Count; s++)
{
if (ListForNumbers[z] == ListForNumbers[s])
{
ListForNumbers.Remove(ListForNumbers[z]);
ListForPublic.Add(ListForNumbers[z]);
}
}
}
Console.Write("Все элементы в списке: ");
foreach(int FirstChecker in Array)
{
Console.Write($"{FirstChecker} ");
}
if (ListForPublic.Count == 0)
{
Console.WriteLine("\nПовторяющихся элементов в списке - нет .");
Console.ReadLine();
return;
}
Console.Write("\nУникальные элементы в списке: ");
foreach(int SecondChecker in ListForNumbers)
{
Console.Write($"{SecondChecker} ");
}
Console.Write("\nОдинаковые элементы в списке: ");
foreach(int ThirdChecker in ListForPublic)
{
Console.Write($"{ThirdChecker} ");
}
Console.ReadLine();
}
}
Всё с проверками и с максимальным удобством, поэтому и объемный код .