Как поменять местами строку со столбцом?

private void button1_Click(object sender, EventArgs e)
    {
        tbAnswer.Text = "";

        if (tbN.Text == "" || tbM.Text == "" || tbP.Text == "")
        {
            MessageBox.Show("Вы ввели некорректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }
        else
        {
            int n = Convert.ToInt32(tbN.Text);
            int m = Convert.ToInt32(tbM.Text);
            int p = Convert.ToInt32(tbP.Text);

            if (p >= n)
            {
                MessageBox.Show("Вы ввели некорректные данные", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                int newM = 0;
                int[][] arrayMatrix = new int[n][];

                for (int i = 0; i < arrayMatrix.Length; i++)
                {
                    arrayMatrix[i] = ParseStringToInt(tbStr.Text, m, ref newM);
                }

                int sum = 0;
                int[] sumArray = new int[n];

                for (int i = 0; i < arrayMatrix.Length; i++)
                {
                    for (int j = 0; j < arrayMatrix[i].Length; j++)
                    {
                        sum += arrayMatrix[i][j];
                    }
                    sumArray[i] = sum;
                    sum = 0;
                }

                int max = sumArray[0];
                int maxI = 0;

                for (int i = 1; i < sumArray.Length; i++)
                {
                    if (sumArray[i] > max)
                    {
                        max = sumArray[i];
                        maxI = i;
                    }
                }
                int[] tepm = arrayMatrix[p];
                arrayMatrix[p] = arrayMatrix[maxI];
                arrayMatrix[maxI] = tepm;

                for (int i = 0; i < arrayMatrix.Length; i++)
                {
                    for (int j = 0; j < arrayMatrix[i].Length; j++)
                    {
                        tbAnswer.Text += $"{arrayMatrix[i][j]} ";
                    }
                }
            }
        }
    }

Имеется задание поменять местами строку с номером p и столбец с максимальной суммой элементов в матрице n x m. Реализовал данное задание, но меняется местами строка со строкой. Не могу понять как исправить.


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

Автор решения: Фикус
int[] temp = new int[arrayMatrix.Length];
                for (int i = 0; i < arrayMatrix.Length; i ++)
                {
                    temp[i] = arrayMatrix[p][i];
                    arrayMatrix[p] [i] = arrayMatrix[i] [maxJ];
                    arrayMatrix[i] [maxJ] = temp[i];
                }
→ Ссылка