Подсчитать количество локальных минимумов заданной матрицы 10 x 10 - C#
Формулировка задачи:
помогите пожалуйста исправить код. не правильно считает количество логических минимумов
using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { const int n = 4; Random r = new Random(); int[,] a = new int[n + 2, n + 2]; for (int i = 1; i < n + 1; i++) { for (int j = 1; j < n + 1; j++) { a[i, j] = r.Next(-50, 50); Console.Write(string.Format("{0,4}", a[i, j])); } Console.WriteLine(); Console.WriteLine(); } int count = 0; for (int i = 1; i < n + 1; i++) for (int j = 1; j < n + 1; j++) if ((a[i, j] < a[i - 1, j]) && (a[i, j] < a[i + 1, j]) && (a[i, j] < a[i, j - 1]) && (a[i, j] < a[i, j + 1])) count++; Console.WriteLine("Количество локальных минимумов: " + count.ToString()); int sum = 0; for (int i = 1; i < n + 1; i++) for (int j = 1; j < n + 1; j++) if (i < j) sum += Math.Abs(a[i, j]); Console.WriteLine("Сумма модулей элементов выше главной диагонали: " + sum.ToString()); Console.ReadKey(); } } }
Решение задачи: «Подсчитать количество локальных минимумов заданной матрицы 10 x 10»
textual
Листинг программы
static class Program { static bool IsLocalMinimum(int[,] A, int y, int x) { bool flag; for (int i = y - 1; i < y + 2; i++) { for (int j = x-1; j < x + 2; j++) { flag = i >= 0 && j >= 0; flag &= i != y || j != x; flag &= i < A.GetLength(0); flag &= j < A.GetLength(1); if (flag && A[y, x] > A[i, j]) return false; } } return true; } static void Main(string[] args) { int n = 3; int[,] a = new int[n, n]; Random r = new Random(); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { a[i, j] = r.Next(-50, 50); Console.Write(string.Format("{0,4}", a[i, j])); } Console.WriteLine(); Console.WriteLine(); } int sum = 0; for (int i = 0; i < n; i++) for (int j = i + 1; j < n; j++) sum += Math.Abs(a[i, j]); Console.WriteLine("Сумма модулей элементов выше главной диагонали: " + sum); int count = 0; for (int i = 0; i < n; i++ ) { for (int j = 0; j < n; j++ ) { if (IsLocalMinimum(a, i, j)) { count++; Console.WriteLine("Локальный минимум ({0}, {1}): {2}", i, j, a[i,j]); } } } Console.WriteLine("Число локальных минимумов: " + count); Console.ReadLine(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д