как исправить ошибку Index Out OF Range Exception?

303
25 марта 2018, 18:27
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace lab_4_3dimensional_array_1
{
    class Array
    {
        private int first_index;
        private int second_index;
        private int third_index;
        private int[,,] array;
        public Array(int first_index, int second_index, int third_index, int[,,] array1)
        {
            this.first_index = first_index;
            this.second_index = second_index;
            this.third_index = third_index;
            Random random = new Random();
            int rand = 1;
            array = new int[first_index, second_index, third_index];
            for (int i = 0; i < first_index; i++)
            {
                for (int j = 0; j < second_index; j++)
                {
                    for (int k = 0; k < third_index; j++)
                    {
                        rand = random.Next(-44, 44);
                        array1[i, j, k] = rand;//error
                    }
                }
            }
            for (int i = 0; i < first_index; i++)
            {
                for (int j = 0; j < second_index; j++)
                {
                    for (int k = 0; k < third_index; j++)
                    {
                        array[i, j, k] = array1[i, j, k];
                    }
                }
            }

        }

        public int Min()
        {
            int min = array[0, 0, 0];
            for (int i = 0; i < first_index; i++)
            {
                for (int j = 0; j < second_index; j++)
                {
                    for (int k = 0; k < third_index; k++)
                    {
                        if (min > array[i, j, k])
                        {
                            min = array[i, j, k];
                        }
                    }
                }
            }
            return min;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Array[] array = new Array[100];
            int first_index, second_index, third_index;
            int count = 0;
            Console.WriteLine("Enter array count");
            count = Convert.ToInt32(Console.ReadLine());
            for (int c = 0; c < count; c++)
            {
                Console.WriteLine("Enter first index of array[{0}]", c);
                first_index = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Enter second index of array[{0}]", c);
                second_index = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Enter third index of array[{0}]", c);
                third_index = Convert.ToInt32(Console.ReadLine());
                int[,,] arr = new int[first_index, second_index, third_index];
                array[c] = new Array(first_index, second_index, third_index, arr);
            }
            int max = array[0].Min();
            for (int c = 0; c < count; c++)
            {
                if (max < array[c].Min())
                {
                    max = array[c].Min();
                }
            }
            Console.WriteLine(max);
        }
    }
}
Answer 1

Опечатка:

        for (int i = 0; i < first_index; i++)
        {
            for (int j = 0; j < second_index; j++)
            {
                for (int k = 0; k < third_index; k++) // not j++ !!!
READ ALSO
Как узнать находится ли курсор в форме?

Как узнать находится ли курсор в форме?

Необходимо понять находится ли курсор мыши на данный момент в форме, как лучше всего это сделать?

186
GMap.Net сдвинуть нулевой меридиан

GMap.Net сдвинуть нулевой меридиан

Всем приветКак в GMap

191
C# WinForms Размер приложения и потребление ОЗУ

C# WinForms Размер приложения и потребление ОЗУ

C# WinForms Размер приложения и потребление ОЗУ

223
Исключение типа System.IndexOutOfRangeException

Исключение типа System.IndexOutOfRangeException

Нужно считать массив из любого числа элементов, сами числа могут быть как целыми, так и с запятойПри запуске выходит исключение System

200