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

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

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

Не имею ни малейшего понятия как выполнить это задание: "Дана матрица размерности MxN. Елемент называется локальным минимумом, если он меньше всех соседних елементов. Заменить все локальные минимумы данной матрицы на 0." Если кто поможет, буду чрезвычайно благодарен
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace ConsoleApplication3
  7. {
  8. class Program
  9. {
  10. public static void Main(string[] args)
  11. {
  12. Console.Write("Введите размерность матрицы: ");
  13. int m = int.Parse(Console.ReadLine());
  14. int n = int.Parse(Console.ReadLine());
  15. int[,] mas = new int[m, n];
  16. for (int i = 0; i < m; i++)
  17. {
  18. for (int j = 0; j < n; j++)
  19. {
  20. Console.Write("x[" + (i+1) + "," + (j+1) + "]=");
  21. mas[i, j] = int.Parse(Console.ReadLine());
  22. }
  23. Console.WriteLine();
  24. }
  25. MasOut(m, n, mas);
  26. /*for (int i = 0; i < m; i++)
  27. {
  28. for (int j = 0; j < n; j++)
  29. {
  30. if()
  31. }
  32. }*/
  33.  
  34. Console.ReadKey();
  35. }
  36. static void MasOut(int x, int y, int[,] mas)
  37. {
  38. for (int i = 0; i < x; i++)
  39. {
  40. for (int j = 0; j < x; j++)
  41. {
  42. Console.Write("x[" + (i + 1) + "," + (j + 1) + "]=" + mas[i, j] + " ");
  43. }
  44. Console.WriteLine("\n");
  45. }
  46. }
  47. //3. Дана матриця розмірності MxN.Елемент називається локальним мінімумом, якщо він менше всіх сусідніх елементів. Замінити всі локальні мінімуми даної матриці на 0.
  48. }
  49. }

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

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ConsoleApplication3
  8. {
  9.     class Program
  10.     {
  11.         public static void Main(string[] args)
  12.         {
  13.             Console.Write("Введите количество строк матрицы: ");
  14.             int m = int.Parse(Console.ReadLine());
  15.             Console.Write("Введите количество столбцов матрицы: ");
  16.             int n = int.Parse(Console.ReadLine());
  17.             int[,] mas = new int[m, n];
  18.             int[,] sortedMas = new int[m, n];
  19.             for (int i = 0; i < m; i++)
  20.             {
  21.                 for (int j = 0; j < n; j++)
  22.                 {
  23.                     Console.Write("x[" + (i+1) + "," + (j+1) + "]=");
  24.                     mas[i, j] = int.Parse(Console.ReadLine());
  25.                     sortedMas[i, j] = mas[i, j];                
  26.                 }
  27.                 Console.WriteLine();
  28.             }
  29.             MasOut(m, n, sortedMas);
  30.             for (int i = 0; i < m; i++)
  31.             {
  32.                 for(int j = 0; j < n; j++)
  33.                 {
  34.                     if(isLocalMinimum(mas, i, j, m, n) == true)
  35.                     {
  36.                         sortedMas[i, j] = 0;
  37.                     }
  38.                 }
  39.             }
  40.             MasOut(m, n, sortedMas);          
  41.             Console.ReadKey();
  42.         }
  43.  
  44.         static void MasOut(int x, int y, int[,] mas)                                    //Вывод массива
  45.         {
  46.             for (int i = 0; i < x; i++)
  47.             {
  48.                 for (int j = 0; j < x; j++)
  49.                 {
  50.                     Console.Write("x[" + (i + 1) + "," + (j + 1) + "]=" + mas[i, j] + "   ");
  51.                 }
  52.                 Console.WriteLine("\n");
  53.             }
  54.         }
  55.  
  56.         static bool isLocalMinimum(int[,] a, int i, int j, int m, int n)                 //Проверка на локальный минимум
  57.         {            
  58.             if (i > 0 && j > 0 && a[i, j] >= a[i - 1, j - 1]) return false;             //Сравнение с элементом слева сверху
  59.             if (i > 0 && a[i, j] >= a[i - 1, j]) return false;                               //Сравнение с элементом сверху
  60.             if (i > 0  && j < n - 1 && a[i, j] >= a[i - 1, j + 1]) return false;       //Сравнение с элементом справа сверху
  61.             if (j > 0 && a[i, j] >= a[i, j - 1]) return false;                               //Сравнение с элементом слева
  62.             if (j < n - 1 && a[i, j] >= a[i, j + 1]) return false;                         //Сравнение с элементом справа
  63.             if (i < m - 1 && j > 0 && a[i, j] >= a[i + 1, j - 1]) return false;       //Сравнение с элементом слева снизу
  64.             if (i < m - 1 && a[i,j] >= a[i + 1, j]) return false;                          //Сравнение с элементом снизу
  65.             if (i < m - 1 && j < n - 1 && a[i, j] >= a[i + 1, j + 1]) return false;  //Сравнение с элементом справа снизу
  66.             return true;
  67.         }
  68.         //3. Дана матриця розмірності MxN.Елемент називається локальним мінімумом, якщо він менше всіх сусідніх елементів. Замінити всі локальні мінімуми даної матриці на 0.
  69.  
  70.     }
  71. }

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


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

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

10   голосов , оценка 4.1 из 5

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

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

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