• Задан массив A [1:m на 1:n], некоторый элемент этого массива назовём Седловой точкой, если он является одновременно наименьшим в своей строке и наибольшим в своём столбце. Напечатать номер строки и столбца какой-нибудь Седловой точки и напечатать число 0, если такой точки нет

    Нужно решение на C#

Ответы 1

  • using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;   namespace CyberForum {     class Program     {         static int[,] Create(int[,] arr)         {             Random r = new Random();             for (int k = 0; k < arr.GetLength(0); k++)                 for (int p = 0; p < arr.GetLength(1); p++)                 {                 arr[k, p] = r.Next(0, 21);             }             return arr;         }         static int[] SearchMin(int[,] arr)         {             int[] Min = new int[arr.GetLength(0)];             int min;             for (int k = 0; k < arr.GetLength(0); k++)             {                 min = arr[k, 0];                 for (int p = 0; p < arr.GetLength(1); p++)                 {                     if (min > arr[k, p])                         min = arr[k, p];                 }                 Min[k] = min;         }             return Min;         }         static int[] SearchMax(int[,] arr)         {             int[] Max = new int[arr.GetLength(1)];             int max;             for (int p = 0; p < arr.GetLength(1); p++)             {                 max = arr[0, p];                 for (int k = 0; k < arr.GetLength(0); k++)                 {                     if (max < arr[k, p])                         max = arr[k, p];                 }                 Max[p] = max;             }             return Max;         }         static void Print(int[,] arr)         {             for (int k = 0; k < arr.GetLength(0); k++)             {                 for (int p = 0; p < arr.GetLength(1); p++)                 {                 Console.Write(arr[k, p] + " ");             }             Console.WriteLine();             }         }         static void Search(int[,] arr, int[] min, int[] max)         {             int flag = 0;             for (int k = 0; k < arr.GetLength(0); k++)             {                 for (int p = 0; p < arr.GetLength(1); p++)                 {                     if (arr[k, p] == min[k] && arr[k, p] == max[p])                     {                         flag++;                         Console.WriteLine("Седловая точка " + arr[k, p]);                         Console.WriteLine("Строка: " + k);                         Console.WriteLine("Столбец: " + p);                     }                 }             }             if (flag == 0)             {             Console.WriteLine("Седловых точек нет");             }         }           static void Main(string[] args)         {             Console.Write("m = ");             int m = Convert.ToInt32(Console.ReadLine());             Console.Write("n = ");             int n = Convert.ToInt32(Console.ReadLine());             int[,] A = new int[m, n];             Create(A);             Print(A);             int[] max = SearchMax(A);             int[] min = SearchMin(A);             Search(A, min, max);             Console.ReadKey();         }     } }

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years