Разделять четные и нечетные числа в разных массивах? - PullRequest
0 голосов
/ 13 апреля 2020

Я работаю над вопросом для моего задания, и вот что он просит: написать программу для разделения нечетных и четных чисел в отдельных массивах. У меня есть часть, где вы вводите любые числа, но когда я запускаю их ... возникает ошибка с циклами for, где я пытаюсь сохранить четные и шансы в отдельных массивах. Мы только начали изучать массивы (c#) на этой неделе, и с момента появления всего вируса мы проводили онлайн-уроки, и это намного сложнее. Спасибо!

Это ошибка, которую я получил: System.IndexOutOfRangeException

для этой строки: odds [y] = i;

Пока это то, что у меня есть:

// Program that seperates odd and even integers -
        int[] nums = new int[10];
        int[] odds = new int[] { };
        int[] evens = new int[] { };
        int x = 0;
        int y = 0;

        Console.WriteLine("Enter 10 integers..\n");
        for (int i = 0; i < nums.Length; i++)
        {
            Console.Write($"Integer[{i}]: ");
            nums[i] = int.Parse(Console.ReadLine());
        }

        for (int i = 0; i < nums.Length; i++)
        {
            if (nums[i] % 2 == 0)
            {
                evens[x] = i;
                x++;
            }
            else
            {
                odds[y] = i;
                y++;
            }
        }

        Console.WriteLine("\nEven numbers..\n");
        foreach (int even in evens)
        {
            Console.WriteLine(even);
        }

        Console.WriteLine("\nOdd numbers..\n");
        foreach (int odd in odds)
        {
            Console.WriteLine(odd);
        }

        Console.ReadKey();

1 Ответ

2 голосов
/ 13 апреля 2020

Здесь происходит несколько проблем, но чтобы преодолеть исключение, о котором вы спрашиваете, вам нужно инициализировать массивы evens и odds размером (в настоящее время равным нулю). Поскольку они потенциально могут быть размером 10, попробуйте сначала -

 int[] odds = new int[10];
 int[] evens = new int[10];

Еще один совет - после этого вы присваиваете индекс числа значению в evens и odds. Похоже, вы хотите вместо этого назначить введенное пользователем значение - evens[x] = nums[i];

Определенно, вы можете сделать больше оптимизаций, но похоже, что вам может потребоваться использовать массивы здесь, поэтому я не хочу начните гадать по правилам назначения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...