Предмет: Информатика, автор: fapadon

Задана матрица целых чисел размером (N;N). Вводится с клавиатуры. Найти минимальный элемент в закрашенной области. Запрещено использовать дополнительных массивов.

Задана матриця цілих чисел розміром (N;N). Знайти мінімальний
елемент в зафарбованій області. Заборонено використання
додаткових масивів.

Вот что у меня есть: Random rnd = new Random();
Console.Write("Довжина масиву:" + " ");
int n = int.Parse(Console.ReadLine());
int[,] arr = new int[n, n];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
arr[j, i] = rnd.Next(-51, 51);
Console.Write("\t" + arr[j, i]);

}
Console.WriteLine();

А дальше не знаю, помогите, пожалуйста.


Приложения:

Ответы

Автор ответа: Макрой
0

    Random rnd = new Random();

           Console.WriteLine("Введите число");

           int n = Convert.ToInt32(Console.ReadLine());

           Console.WriteLine("Довжина масиву: " + n);

           int[,] arr = new int[n, n];

           int min = arr[0, 0];

           int min2 = arr[0, 0];

         int min3=  arr[n-1, n-2];

           for (int i = 0; i < n / 2; i++)

               for (int j = i; j < n; j++)

               {

                   arr[j, i] = rnd.Next(-51, 51);

                   if (min > arr[j, i]) { min = arr[j,i]; }

               }

           Console.WriteLine("Минимальный элемент в левой части");

           Console.WriteLine(min);

           for (int i = n/2; i < n; i++)

               for (int j = i; j <n; j++)

               {

                   arr[i, j] = rnd.Next(-51, 51);

                   if (min2 > arr[i, j]) { min2 = arr[i, j]; }

               }

           

           for (int i = 0; i < n/2; i++)

               for (int j = n/2; j < n ; j++)

               {

                   arr[i, j] = rnd.Next(-51, 51);

                   if (min3 > arr[i, j]) { min3 = arr[i, j]; }

               }

           Console.WriteLine("Минимальный элемент в правой части");

           if (min2 < min3) { Console.WriteLine(min2); }

           else { Console.WriteLine(min3); }

           Console.WriteLine();

           for (int i = 0; i < n; i++)

           {

               for (int j = 0; j < n; j++)

                Console.Write("{0}{1}", arr[i, j], "\t");

                   Console.WriteLine();

               }

           Console.ReadLine();

Приложения:

fapadon: Почему углы как бы заполняются нулями? Мне их просто не нужно учитывать и найти одно минимальное число из двух закрашенных областей
Макрой: Еще проще
Макрой: сравни 2 минимальных элемента
Макрой: тот который меньше выводи на экран
Макрой: в комментарий кинуть?
fapadon: Кинь как-то, я просто не понимаю как мне сделать так, что б не считалась та незакрашенная область. Что б допустим те углы незакрашенной оставить с какими-то числами, а их просто не считать
Макрой: сюда не получается так как там больше 500 символов
Макрой: создай новый вопрос
Похожие вопросы