Загрузка...

Индекс находился вне границ массива

Тема в разделе C# создана пользователем hatenig 31 мар 2024. 169 просмотров

  1. hatenig
    hatenig Автор темы 31 мар 2024 159 26 ноя 2022
    CSHARP
    static void Main(string[] args)
    {
    int[] massive = new int[10] { 5, -2, 3, -5, 11, 2, 1, -10, 13, 8 };
    int[] NewMassive = new int[massive.Length];
    int counter = 0;
    Console.Write("Введённый массив: ");
    for (int i = 0; i < massive.Length; i++)
    {
    Console.Write(massive[i] + " ");
    }
    for (int i = 0; i < massive.Length; i++)
    {
    if (massive[i] > 0 && counter!=5)
    {
    NewMassive[massive.Length] = massive[i];
    counter++;
    Console.WriteLine($"\nМассив с положительными числами:{NewMassive}");
    }
    }
    Console.ReadLine();
    }
    Ошибку выводит на "NewMassive[massive.Length] = massive;"
    System.IndexOutOfRangeException: "Индекс находился вне границ массива."
     
    31 мар 2024 Изменено
  2. hatenig
    hatenig Автор темы 31 мар 2024 159 26 ноя 2022
    как фикс, что не нравится ему?
     
  3. Alicanto
    Alicanto 31 мар 2024 1 7 окт 2019
    for (int i = 0; i < massive.Length; i++) здесь он считает длину массива а нужно на 1 меньше просто так напиши for (int i = 0; i < massive.Length - 1; i++) {
     
    31 мар 2024 Изменено
    1. Посмотреть предыдущие комментарии (1)
    2. panacea
      hatenig, у тебя оба цикла такие
    3. hatenig Автор темы
  4. eternal
    eternal 31 мар 2024 звёзды от меня https://lolz.live/threads/8939583/ 14 785 2 авг 2018
    CSHARP
    static void Main(string[] args)
    {
    int[] massive = new int[10] { 5, -2, 3, -5, 11, 2, 1, -10, 13, 8 };
    int[] NewMassive = new int[massive.Length];
    int counter = 0;
    Console.Write("Введённый массив: ");
    for (int i = 0; i < massive.Length; i++)
    {
    Console.Write(massive[i] + " ");
    }
    for (int i = 0; i < massive.Length; i++)
    {
    if (massive[i] > 0 && counter != 5)
    {
    NewMassive[counter] = massive[i];
    counter++;
    }
    }
    Console.WriteLine("\nМассив с положительными числами:");
    for (int i = 0; i < counter; i++)
    {
    Console.Write(NewMassive[i] + " ");
    }
    Console.ReadLine();
    }
     
    1. Посмотреть предыдущие комментарии (1)
    2. hatenig Автор темы
      eternal, а почему так, почему в индекс добавляется коунтер?
    3. hatenig Автор темы
    4. hatenig Автор темы
    5. Посмотреть следующие комментарии (1)
Загрузка...
Top