Поменять местами каждые две рядом расположенные строки матрицы - 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();
        }
    }
}

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


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

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

15   голосов , оценка 4.133 из 5
Похожие ответы