Подскажите в чем ошибка, считает 2x2, 3x3 матрицы, но 2x3 выдает ошибки, что выход за индексы
Программа считает все положительные строки и если их нету сортирует матрицу по возрастанию
namespace WinAPP
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public class Data
{
public static int Value1 { get; set; }
public static int Value2 { get; set; }
}
private void button1_Click(object sender, EventArgs e)
{
{
dataGridView1.Rows.Clear();
int n = Data.Value1;
int m = Data.Value2;
dataGridView1.ColumnCount = n;
dataGridView1.RowCount = m;
button2.Enabled = true;
}
}
private void button2_Click(object sender, EventArgs e)
{
dataGridView2.Rows.Clear();
int n = Data.Value1;
int m = Data.Value2;
int k;
int p = 0;
float[,] array = new float[n, m];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
array[i, j] = Convert.ToSingle(dataGridView1.Rows[i].Cells[j].Value);
}
}
for (int i = 0; i < n; i++)
{
k = 1;
for (int j = 0; j < m; j++)
{
if (array[j, i] <= 0)
{
k = 0; break;
}
}
if (k != 0) p++;
}
label1.Text = "P = " + p.ToString();
dataGridView2.ColumnCount = dataGridView1.ColumnCount;
dataGridView2.RowCount = dataGridView1.RowCount;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
dataGridView2.Rows[i].Cells[j].Value = array[i, j];
}
if(p <= 0)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
dataGridView2.Sort(dataGridView2.Columns[0], ListSortDirection.Descending);
}
}
MessageBox.Show("P <Выполнена сортировка!");
}
}
private void Form1_Load(object sender, EventArgs e)
{
Form2 fr2 = new Form2();
fr2.Show();
}
private void button3_Click(object sender, EventArgs e)
{
}
private void button3_Click_1(object sender, EventArgs e)
{
DialogResult dialogResult = MessageBox.Show("Закрыть программу?", "Подтвердите действие", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (dialogResult == DialogResult.Yes)
{
Close();
}
else if (dialogResult == DialogResult.No)
{
dialogResult = DialogResult.None;
}
}
}
}
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
Form1.Data.Value1 = Convert.ToInt32(row.Value);
}


array[i, j], в другом -array[j, i]– Alexander Petrov Jan 22 '21 at 03:28