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