С# исправить ошибку и объяснить алгоритм нахождения седловых точек - C#

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

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

Можете подправить косяки, и объяснить как найти номер всех седловых точек массива. ЗЫ матрица А имеет седловую точку Аij, если Аij является минимальном элементом в i-той строке и максимальным в j-ом столбце.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace масивСИШАРП
{
    class Program
    {
        static void Main(string[] args)
        {
            const int m = 4, n = 4;
            int[,] a=new int[m, n] {
            {1, -2, 3, 4},
            {5, -6, -7, 8},
            {-9, 10, 11, 12},
            {13, -14, 15, -16},
        };
            Console.WriteLine("Исходный масив:" );
            for (int i = 0; i < m; ++i)
            {
                for (int j = 0; j < n; ++j)
                    Console.WriteLine("\t", +a[i, j]);
                Console.WriteLine();
                
                    }
            double summ = 0;
            for (int i = 0; i < m; ++i)
            {
                for (int j = 0; j < n; ++j)
                    summ += a[i, j];
                if (a[i, j] >= 0) ++summ;
            }
            Console.WriteLine("Сумма положительных элементов" + summ);
        }

    }
 
}

Решение задачи: «С# исправить ошибку и объяснить алгоритм нахождения седловых точек»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace масивСИШАРП
{
    class Program
    {
        static void Main(string[] args)
        {
            const int m = 4, n = 4;
            int[,] a = new int[m, n] {
            {0, -2, 3, 4},
            {5, -6, -7, 8},
            {-9, -10, 11, -12},
            {13, -14, 15, -15},
            };
            double summ = 0;
            for (int i = 0; i < m; i++)
                for (int j = 0; j < n; j++)
                {
                    if (a[i, j] > 0)
                    {
                        summ += a[i, j];
 
                    }
                    int max = int.MinValue, min = int.MaxValue, jmin=int.MaxValue, imax=int.MinValue;
                    if (a[i, j] < min)
                    {
                        min = a[i, j];
                        jmin = j;
                    }
                    if (i == n - 1)
                    {
                        for (int k = 0; k < m; k++)
                            if (a[k, jmin] > max)
                            {
                                max = a[k, jmin];
                                imax = k;
 
                            }
                    }
 
 
                }
 
 
        }
    }
}

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


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

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

11   голосов , оценка 4 из 5
Похожие ответы