В четных строках матрицы поменять местами максимальные и минимальные значения - 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();