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. Реализовал данное задание, но меняется местами строка со строкой. Не могу понять как исправить.
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]; }
FXT, а как ты себе вообще представляешь себе поменять местами строку и столбец в не-квадратной матрице? например поменяй мне местами первую строку и первый стобец в следующей матрице 1 2 3 4 5 6
FXT, ты мне цифры переставь в той матрице что я тебе написал, так чтобы поменять первую строку и первый столбец.