В четных строках матрицы поменять местами максимальные и минимальные значения - C#
Формулировка задачи:
Дана квадратная матрица порядка n. Преобразовать исходную матрицу по правилу: в четных строках поменять местами максимальные и минимальные значения.
Решаю данную задачу на C#. Массив инициализирую. Заполняю случайными числами. Четные строки пытаюсь определять условием (i % 2 == 0), но беда в том что минимальные и максимальные ищет во всех строках.
Помогите пожалуйста понять, каким образом лучше определять четные строки и менять в них местами максимальное и минимальное число.
static void Main() { int n; Random rand = new Random(); Console.Write("Введите размерность: "); n = int.Parse(Console.ReadLine()); //Инициализация массива int[,] myArray; myArray = new int[n, n]; //Заполнение массива for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) myArray[i, j] = rand.Next(-20, 20); //Вывод массива Console.WriteLine("Исходный массив: "); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) Console.Write(myArray[i, j] + "\t"); Console.WriteLine(); } int min = 1; int max = 1; for (int j = 0; j < n; j++) { for (int i = 0; i < n; i++) { if ( i % 2 == 0) { if (min > myArray[i, j]) { min = myArray[i, j]; } if (max < myArray[i, j]) { max = myArray[i, j]; } } } } Console.WriteLine("Минимальный элемент: " +min); Console.WriteLine("Максимаьный элемент: " +max); Console.ReadKey(); }
Решение задачи: «В четных строках матрицы поменять местами максимальные и минимальные значения»
textual
Листинг программы
int n; Random rand = new Random(); Console.Write("Введите размерность: "); n = int.Parse(Console.ReadLine()); //Инициализация массива int[,] myArray; myArray = new int[n, n]; //Заполнение массива //Вывод массива Console.WriteLine("Исходный массив: "); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { myArray[i, j] = rand.Next(-20, 20); Console.Write(myArray[i, j] + "\t"); } Console.WriteLine(); } for (int i = 0; i < n; i++) { int min = 0, max = 0, maxIndexJ = 0, minIndexJ = 0; if (i%2 == 0) { for (int j = 0; j < n; j++) { if (min > myArray[i, j]) { min = myArray[i, j]; minIndexJ = j; } if (max < myArray[i, j]) { max = myArray[i, j]; maxIndexJ = j; } } var temp = myArray[i, maxIndexJ]; myArray[i, maxIndexJ] = myArray[i, minIndexJ]; myArray[i, minIndexJ] = temp; } } Console.WriteLine("Преобразованный массив: "); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { Console.Write(myArray[i, j] + "\t"); } Console.WriteLine(); } Console.ReadKey();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д