Поиск одинаковых элементов массива - C# (182453)
Формулировка задачи:
Вот само задание:
Даны натуральное Проблема в том, что она находит одинаковые элементы, если их не больше 2-х. Если больше, то программа не работает. Как исправить, чтоб программа искала одинаковые элементы независимо от их количества? Заранее спасибо
n
, целые числаa1
, …,an
. Внутри данной последовательности могут быть повторяющиеся члены. Получить числа, взятые по одному из каждой группы равных членов. Написал такую программу:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Program2
{
class Program
{
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
int[] a = new int[n];
for (int i = 0; i < n; i++)
{
a[i] = int.Parse(Console.ReadLine());
}
for (int i = 0; i < n - 1; i++)
for (int j = i + 1; j < n; j++)
if (a[i] > a[j])
{
int b = a[i];
a[i] = a[j];
a[j] = b;
}
for (int i = 1; i < n; i++)
{
if (a[i] == a[i - 1])
{
Console.Write(" ");
Console.WriteLine(a[i]);
}
}
}
}
}Решение задачи: «Поиск одинаковых элементов массива»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Program2
{
class Program
{
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
int[] a = new int[n];
for (int i = 0; i < n; i++)
{
a[i] = int.Parse(Console.ReadLine());
}
for (int i = 0; i < n - 1; i++)
for (int j = i + 1; j < n; j++)
if (a[i] > a[j])
{
int b = a[i];
a[i] = a[j];
a[j] = b;
}
Console.WriteLine("**************");
foreach (int item in a)
{
Console.WriteLine(item);
}
Console.ReadLine();
Console.WriteLine("**************");
int prev = 0;
for (int i = 0; i < n-1; i++)
{
if (a[i] == a[i +1] && prev != a[i])
{
prev = a[i];
Console.Write(a[i]+" ");
}
}
Console.ReadLine();
}
}
}