Массив и его локальные минимумы - C#

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

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

Не имею ни малейшего понятия как выполнить это задание: "Дана матрица размерности MxN. Елемент называется локальным минимумом, если он меньше всех соседних елементов. Заменить все локальные минимумы данной матрицы на 0." Если кто поможет, буду чрезвычайно благодарен
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication3
{
    class Program
    {
        public static void Main(string[] args)
        {
            Console.Write("Введите размерность матрицы: ");
            int m = int.Parse(Console.ReadLine());            
            int n = int.Parse(Console.ReadLine());
            int[,] mas = new int[m, n];            
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    Console.Write("x[" + (i+1) + "," + (j+1) + "]=");
                    mas[i, j] = int.Parse(Console.ReadLine());
                }
                Console.WriteLine();
            }
            MasOut(m, n, mas);
            /*for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    if()
                }
            }*/

                    Console.ReadKey();
        }
 
        static void MasOut(int x, int y, int[,] mas)
        {
            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < x; j++)
                {
                    Console.Write("x[" + (i + 1) + "," + (j + 1) + "]=" + mas[i, j] + "   ");
                }
                Console.WriteLine("\n");
            }
        }
        //3. Дана матриця розмірності MxN.Елемент називається локальним мінімумом, якщо він менше всіх сусідніх елементів. Замінити всі локальні мінімуми даної матриці на 0.
 
    }
}

Решение задачи: «Массив и его локальные минимумы»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication3
{
    class Program
    {
        public static void Main(string[] args)
        {
            Console.Write("Введите количество строк матрицы: ");
            int m = int.Parse(Console.ReadLine());
            Console.Write("Введите количество столбцов матрицы: ");
            int n = int.Parse(Console.ReadLine());
            int[,] mas = new int[m, n];
            int[,] sortedMas = new int[m, n];
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    Console.Write("x[" + (i+1) + "," + (j+1) + "]=");
                    mas[i, j] = int.Parse(Console.ReadLine());
                    sortedMas[i, j] = mas[i, j];                 
                }
                Console.WriteLine();
            }
            MasOut(m, n, sortedMas);
            for (int i = 0; i < m; i++)
            {
                for(int j = 0; j < n; j++)
                {
                    if(isLocalMinimum(mas, i, j, m, n) == true)
                    {
                        sortedMas[i, j] = 0;
                    }
                }
            }
            MasOut(m, n, sortedMas);           
            Console.ReadKey();
        }
 
        static void MasOut(int x, int y, int[,] mas)                                    //Вывод массива
        {
            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < x; j++)
                {
                    Console.Write("x[" + (i + 1) + "," + (j + 1) + "]=" + mas[i, j] + "   ");
                }
                Console.WriteLine("\n");
            }
        }
 
        static bool isLocalMinimum(int[,] a, int i, int j, int m, int n)                 //Проверка на локальный минимум
        {            
            if (i > 0 && j > 0 && a[i, j] >= a[i - 1, j - 1]) return false;             //Сравнение с элементом слева сверху
            if (i > 0 && a[i, j] >= a[i - 1, j]) return false;                               //Сравнение с элементом сверху
            if (i > 0  && j < n - 1 && a[i, j] >= a[i - 1, j + 1]) return false;       //Сравнение с элементом справа сверху
            if (j > 0 && a[i, j] >= a[i, j - 1]) return false;                               //Сравнение с элементом слева 
            if (j < n - 1 && a[i, j] >= a[i, j + 1]) return false;                         //Сравнение с элементом справа
            if (i < m - 1 && j > 0 && a[i, j] >= a[i + 1, j - 1]) return false;       //Сравнение с элементом слева снизу
            if (i < m - 1 && a[i,j] >= a[i + 1, j]) return false;                          //Сравнение с элементом снизу
            if (i < m - 1 && j < n - 1 && a[i, j] >= a[i + 1, j + 1]) return false;  //Сравнение с элементом справа снизу
            return true;
        }
        //3. Дана матриця розмірності MxN.Елемент називається локальним мінімумом, якщо він менше всіх сусідніх елементів. Замінити всі локальні мінімуми даної матриці на 0.
 
    }
}

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


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

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

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