Не выходить за границы массива - C#
Формулировка задачи:
Здравствуйте! Я новичок и ещё только учусь. Я смог создать массив и заполнить его случайными числами от 1 до 100. Теперь я хотел бы вывести на консоль те числа, которые встречаются в массиве от двух или более раз. По моему алгоритму вылезает ошибка, что при проверке я вылезаю за границу индекса. Помогите, пожалуйста, кто чем может.
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main()
- {
- int[] a = new int[100];
- Random b = new Random();
- for (int i = 0; i < a.Length; i++)
- {
- a[i] = b.Next(1, 101);
- }
- for (int i = 0; i < a.Length; i++)
- {
- if (a[i] == a[i + 1])
- Console.WriteLine("х2: {0} {1}", a[i], a[i]);
- }
- Console.ReadKey();
- }
- }
- }
Решение задачи: «Не выходить за границы массива»
textual
Листинг программы
- int[] a = new int[100];
- Random b = new Random();
- for (int i = 0; i < a.Length; i++)
- a[i] = b.Next(1, 101);
- HashSet<int> matches = new HashSet<int>(); // HashSet не даст добавить в себя число, которое уже содержится
- for (int i = 0; i < a.Length; i++)
- for (int j = i + 1; j < a.Length; j++) // j = i + 1 чтобы не проверять уже проверенные числа
- if (a[i] == a[j]) matches.Add(a[i]);
- foreach (var item in matches)
- Console.WriteLine("х2: {0}", item);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д