Не выходить за границы массива - 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);

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


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

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

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