Переполняется массив
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].