Программа не работает правильно без "Console.ReadLine()" - C#

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

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

Помогите решить проблему. Пишу программу, которая генерирует 45 случайных шестиразрядных чисел. Условие задачи такого, что цифры в числах не должны повторяться. После чего программа считает какая цифра в этих числах повторяется чаще всего. Я написал весь код к этой задаче: и генератор чисел, и подсчет цифр. Но! Программа работает только, если после каждого сгенерированного числа ожидается ввод с клавиатуры(Console.ReadLine()). Объясните в чем проблема. Если убрать строку Console.ReadLine() то все числа будут одинаковыми. Как исправить эту ошибку? Ниже приведен код(методы для генерации чисел и метод Main). Часть кода я вырезал.
static int Generate()
    {
        int[] mass = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
        string s = "";
        Random r = new Random();
        for (int i = 0; i < 6; i++)
        {
            if (i == 0)
            {
                int ran = r.Next(0, mass.Length - 2);
                s += mass[ran];
                mass = DelEl(mass, ran);
            }
            else
            {
                int ran = r.Next(0, mass.Length - 1);
                s += mass[ran];
                mass = DelEl(mass, ran);
            }
        }
        return int.Parse(s);
    }
 
        static int[] DelEl(int[] mass, int ran)
    {
        int[] mass2 = new int[mass.Length - 1];
        for (int i = 0; i < mass2.Length; i++)
        {
            if (i < ran)
                mass2[i] = mass[i];
            else
                mass2[i] = mass[i + 1];
        }
        return mass2;
    }
 
static void Main(string[] args)
{
int[] array = new int[45];
Console.WriteLine("Автоматическое генерирование чисел:");
                for(int i = 0; i < array.Length; i ++)
                {
                    array[i] = Generate();
                    Console.ReadLine(); // Если убрать эту строку, то все значения элементов будет одинаковыми!
                    Console.WriteLine("Число номер {0, 2} получило значение = {1}", i + 1, array[i]);
                }
Console.ReadLine();
}

Решение задачи: «Программа не работает правильно без "Console.ReadLine()"»

textual
Листинг программы
static readonly Random r = new Random();
static int Generate()
    {
        int[] mass = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
        string s = "";
        ...

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


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

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

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