Поиск одинаковых элементов массива - 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(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д