Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2017, 14:37   #1
AcHt
 
Регистрация: 22.12.2016
Сообщений: 8
Восклицание Двумерный массив.Локальные минимумы - C#

Задача такая: Дан двухмерный массив 20 × 20 целочисленных элементов.Найдите все локальные максимумы. (Элемент
является локальным максимумом, если он не имеет соседей, больших, чем он сам).
Помогите !
AcHt вне форума Ответить с цитированием
Старый 06.06.2017, 15:35   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Вижу так. проверяем "внутренние" елементы -т.е вокруг элемента 8 соседей
Код:
using System;
namespace ConsoleApplicationForFun
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random();
            int size = 10;
            int[,] a = new int[size, size];
            int[,] b = new int[size, size];
            for (int i = 0; i < a.GetLength(0); i++)
            {
                for (int j = 0; j < a.GetLength(1); j++)
                {
                    a[i, j] = rnd.Next(-10, 10);
                    Console.Write("{0,5}  ", a[i, j]);
                 }
                Console.WriteLine();
            }
            Console.WriteLine("\n\n");
            for (int i = 1; i < a.GetLength(0)-1; i++)
            {
                for (int j = 1; j < a.GetLength(1)-1; j++)
                {
                    if (
                       a[Math.Max(i - 1, 0), Math.Max(0, j - 1)] < a[i, j] &&
                       a[Math.Max(i, 0), Math.Max(0, j - 1)] < a[i, j] &&
                       a[Math.Min(i + 1, a.GetLength(0)-1), Math.Max(0, j - 1)] < a[i, j] &&
                       a[Math.Max(i - 1, 0), Math.Max(0, j)] < a[i, j] &&
                       a[Math.Min(i + 1, a.GetLength(0)-1), Math.Max(0, j)] < a[i, j] &&
                       a[Math.Max(i - 1, 0), Math.Min(a.GetLength(1)-1, j + 1)] < a[i, j] &&
                       a[Math.Max(i, 0), Math.Min(a.GetLength(1)-1, j + 1)] < a[i, j] &&
                       a[Math.Min(i + 1, a.GetLength(0)-1), Math.Min(a.GetLength(1)-1, j + 1)] < a[i, j])
                    {
                        b[i, j] = a[i, j];
                        Console.WriteLine("B[{0},{1}]={2}", i, j, b[i, j]);
                    }
                }
            }

            for (int i = 0; i < b.GetLength(0); i++)
            {
                for (int j = 0; j < b.GetLength(1); j++)
                    if(b[i,j]!=0)
                        Console.Write("{0,5}", b[i, j]);
                    else
                        Console.Write("{0,6}", " ");
                Console.WriteLine();
            }
            Console.ReadLine();
        }
    }
}
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переписывая все в новый массив,добавить в двумерный массив столбец с заданным номером. anasttb Общие вопросы C/C++ 0 24.05.2017 12:15
Программирование в VBA: двумерный массив M на N, нужно создать новый одномерный массив TheAnnihilyator Помощь студентам 1 04.06.2014 09:16
Двумерный массив развернуть в одномерный массив по строкам[QBASIC] TrueStyle777 Помощь студентам 3 29.05.2013 21:56
как вывести на экран локальные минимумы в среде delphi ? кристина19 Общие вопросы Delphi 12 08.05.2010 19:55
Локальные минимумы и их номера. f4rr3l Паскаль, Turbo Pascal, PascalABC.NET 5 06.01.2009 21:51