Переполняется массив

https://github.com/Nikolinc/Simplex- Делаем практику по создании программы для симплексного метода. Постоянно переполняется массив. Преподаватель тоже не знает. Благодарю за помощь.

Сам код:

public partial class Form1 : Form
{
    int[,] table = new int[4, 6];
    float[,] sim = new float[4, 6];

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click_1(object sender, EventArgs e)
    {
        app();
        Simp();
        //textBox1.Text = Convert.ToString(sim[1, 6]);
    }

    private void app()
    {
        table[1, 1] = Convert.ToInt32(textBox10.Text);
        table[2, 1] = Convert.ToInt32(textBox1.Text);
        table[3, 1] = Convert.ToInt32(textBox4.Text);

        table[4, 1] = Convert.ToInt32(textBox7.Text);
        // в этой строке происходит переполнение массива
    
        table[1, 2] = Convert.ToInt32(textBox2.Text);
        table[2, 2] = Convert.ToInt32(textBox2.Text);
        table[3, 2] = Convert.ToInt32(textBox5.Text);
        table[4, 2] = Convert.ToInt32(textBox8.Text);
    
        table[1, 3] = 0;
        table[2, 3] = 1;
        table[3, 3] = 0;
        table[4, 3] = 0;
    
        table[1, 4] = 0;
        table[2, 4] = 0;
        table[3, 4] = 1;
        table[4, 4] = 0;
    
        table[1, 5] = 0;
        table[2, 5] = 0;
        table[3, 5] = 0;
        table[4, 5] = 1;
    
        table[1, 6] = 0;
        table[2, 6] = Convert.ToInt32(textBox3.Text);
        table[3, 6] = Convert.ToInt32(textBox6.Text);
        table[4, 6] = Convert.ToInt32(textBox9.Text);
    }
}

Ответы (1 шт):

Автор решения: CrazyElf

В C# как и во многих других языках программирования индексация идёт не с 1, а с 0. Поэтому когда вы объявляете массив размером 6, индексы доступа к его элементам будут не от 1 до 6, а от 0 до 5. С многомерными массивами принцип тот же. В каждом измерении индексация идёт от 0. Для массива int[4, 6] максимальные индексы будут [3, 5].

→ Ссылка