Поменять местами каждые две рядом расположенные строки матрицы - 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();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д