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