Поменять местами каждые две рядом расположенные строки матрицы - C#

Узнай цену своей работы

Формулировка задачи:

Дана матрица А[m,n]. Поменять местами каждые две рядом расположенные строки, если максимальные элементы в них имеют одинаковую четность. если можно с комментариями))

Решение задачи: «Поменять местами каждые две рядом расположенные строки матрицы»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ConsoleApplication9
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             const int m = 8, n = 4;
  13.             Random rnd = new Random();
  14.             int[,] A = new int[m, n];
  15.             int[] temp = new int[n];
  16.             int i, j, max1, max2;
  17.             Console.WriteLine("Рандомная матрица:");
  18.             for (i = 0; i < m; i++)//Выводим матрицу на консоль и одновременно заполняем ее
  19.             {
  20.                 for (j = 0; j < n; j++)
  21.                 {
  22.                     Console.Write("{0,4}", A[i, j] = rnd.Next(10));
  23.                 }
  24.                 Console.WriteLine();
  25.             }
  26.             for (i = 0; i < m-1; i++)
  27.             {
  28.                 max1 = int.MinValue;
  29.                 max2 = int.MinValue;
  30.                 for (j = 0; j < n; j++)
  31.                 {
  32.                     if (A[i,j] > max1) //ищем максимальное в одном ряду (i)
  33.                     {
  34.                         max1 = A[i, j];
  35.                     }
  36.                     if (A[i+1,j] > max2) // и ищем максим. в следующ ряду (i+1)
  37.                     {
  38.                         max2 = A[i + 1, j];
  39.                     }
  40.                 }
  41.                 if ((max1+max2)%2 == 0) //проверка на четность суммы 2-х максимальных
  42.                 {                   //(сумма 2-х четных или 2-х нечетных - всегда четная)
  43.                     for (j = 0; j < n; j++)
  44.                     {
  45.                         temp[j] = A[i, j];  //меняем по одному значения двух соседних рядов
  46.                         A[i, j] = A[i + 1, j];
  47.                         A[i + 1, j] = temp[j];
  48.                     }
  49.                 }
  50.             }
  51.             Console.WriteLine("Результат:");
  52.             for (i = 0; i < m; i++)//Выводим результат
  53.             {
  54.                 for (j = 0; j < n; j++)
  55.                 {
  56.                     Console.Write("{0,4}", A[i, j]);
  57.                 }
  58.                 Console.WriteLine();
  59.             }
  60.             Console.ReadLine();
  61.         }
  62.     }
  63. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы