Поиск одинаковых элементов массива - C# (182453)

Узнай цену своей работы

Формулировка задачи:

Вот само задание: Даны натуральное

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]);                   
                }
            }
        }
    }
}
Проблема в том, что она находит одинаковые элементы, если их не больше 2-х. Если больше, то программа не работает. Как исправить, чтоб программа искала одинаковые элементы независимо от их количества? Заранее спасибо

Решение задачи: «Поиск одинаковых элементов массива»

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();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы