Как поменять местами строку со столбцом?
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];
}