Поменять местами каждые две рядом расположенные строки матрицы - C#
Формулировка задачи:
Дана матрица А[m,n]. Поменять местами каждые две рядом расположенные строки, если максимальные элементы в них имеют одинаковую четность.
если можно с комментариями))
Решение задачи: «Поменять местами каждые две рядом расположенные строки матрицы»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication9 { class Program { static void Main(string[] args) { const int m = 8, n = 4; Random rnd = new Random(); int[,] A = new int[m, n]; int[] temp = new int[n]; int i, j, max1, max2; Console.WriteLine("Рандомная матрица:"); for (i = 0; i < m; i++)//Выводим матрицу на консоль и одновременно заполняем ее { for (j = 0; j < n; j++) { Console.Write("{0,4}", A[i, j] = rnd.Next(10)); } Console.WriteLine(); } for (i = 0; i < m-1; i++) { max1 = int.MinValue; max2 = int.MinValue; for (j = 0; j < n; j++) { if (A[i,j] > max1) //ищем максимальное в одном ряду (i) { max1 = A[i, j]; } if (A[i+1,j] > max2) // и ищем максим. в следующ ряду (i+1) { max2 = A[i + 1, j]; } } if ((max1+max2)%2 == 0) //проверка на четность суммы 2-х максимальных { //(сумма 2-х четных или 2-х нечетных - всегда четная) for (j = 0; j < n; j++) { temp[j] = A[i, j]; //меняем по одному значения двух соседних рядов A[i, j] = A[i + 1, j]; A[i + 1, j] = temp[j]; } } } Console.WriteLine("Результат:"); for (i = 0; i < m; i++)//Выводим результат { for (j = 0; j < n; j++) { Console.Write("{0,4}", A[i, j]); } Console.WriteLine(); } Console.ReadLine(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д