Не выходить за границы массива - C#

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

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

Здравствуйте! Я новичок и ещё только учусь. Я смог создать массив и заполнить его случайными числами от 1 до 100. Теперь я хотел бы вывести на консоль те числа, которые встречаются в массиве от двух или более раз. По моему алгоритму вылезает ошибка, что при проверке я вылезаю за границу индекса. Помогите, пожалуйста, кто чем может.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace ConsoleApplication1
  7. {
  8. class Program
  9. {
  10. static void Main()
  11. {
  12. int[] a = new int[100];
  13. Random b = new Random();
  14. for (int i = 0; i < a.Length; i++)
  15. {
  16. a[i] = b.Next(1, 101);
  17. }
  18. for (int i = 0; i < a.Length; i++)
  19. {
  20. if (a[i] == a[i + 1])
  21. Console.WriteLine("х2: {0} {1}", a[i], a[i]);
  22. }
  23. Console.ReadKey();
  24. }
  25. }
  26. }

Решение задачи: «Не выходить за границы массива»

textual
Листинг программы
  1.             int[] a = new int[100];
  2.             Random b = new Random();
  3.  
  4.             for (int i = 0; i < a.Length; i++)
  5.                 a[i] = b.Next(1, 101);
  6.            
  7.             HashSet<int> matches = new HashSet<int>(); // HashSet  не даст добавить в себя число, которое уже содержится
  8.  
  9.             for (int i = 0; i < a.Length; i++)
  10.                 for (int j = i + 1; j < a.Length; j++) // j = i + 1 чтобы не проверять уже проверенные числа
  11.                     if (a[i] == a[j]) matches.Add(a[i]);
  12.            
  13.             foreach (var item in matches)
  14.                 Console.WriteLine("х2: {0}", item);

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


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

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

13   голосов , оценка 4.154 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы