C # [i, j] добавить min "j" значения матрицы в новый массив? - PullRequest
0 голосов
/ 11 декабря 2019

[i, j] добавляет самые большие значения матрицы к j, новый массив здесь:

Но самое маленькое не работает .. Минимальные значения в "j" (не работают)

for (int i = 0; i < olay; i++)
    {
        for (int j = 0; j < state; j++)
        {
            if (minimax[i] > matris[i, j])
            {
                minimax[i] = matris[i, j];
            }
        }
    }

    Console.WriteLine();
    for (int i = 0; i < minimax.Length; i++)
    {
        Console.WriteLine(i + 1 + ". MINIMAX " + minimax[i]);
    }

    Console.ReadLine();
    }

Макс. Значения в «J» (РАБОТАЕТ)

   for (int i = 0; i < olay; i++)
        {
            for (int j = 0; j < state; j++)
            {
                if (maximax[i] < matris[i, j])
                {
                    maximax[i] = matris[i, j];
                }
            }
        }

        /* Olaylar icin en yuksek State degerleri */
        Console.WriteLine();
        for (int i = 0; i < maximax.Length; i++)
        {
            Console.WriteLine(i + 1 + ". MAXIMAX " + maximax[i]);
        }

Выходная консоль: IMG Lınk: https://pasteboard.co/IKKQlet.jpg

Ответы [ 2 ]

2 голосов
/ 11 декабря 2019

Значения по умолчанию в ваших массивах - 0. Чтобы вычислить минимальное значение в каждом столбце и записать его в массив, вы можете сделать что-то вроде этого:

    var resultArray = new int[rowLength];
    var matrix = new int[rowLength, columnLength];

    for (int i = 0; i < rowLength; i++)
    {
        // you have to set the first value as a minimum and after that compare
        resultArray[i] = matrix[i, 0];

        for (int j = 1; j < columnLength; j++)
        {
            if (matrix[i, j] < resultArray[i])
            {
                resultArray[i] = matrix[i, j];
            }
        }
    }

Пожалуйста, проверьте ссылки: https://www.geeksforgeeks.org/minimum-element-of-each-row-and-each-column-in-a-matrix/

0 голосов
/ 11 декабря 2019

Также рассмотрите возможность использования методов расширения Min и Max вместо if...else сравнений.

//Example:
int[][] jag = new int[10][];
var rand = new Random();

for(int i = 0; i <= jag.GetUpperBound(0); i++)
{
    jag[i] = new int[4] {
        rand.Next(0, 25),
        rand.Next(26, 50),
        rand.Next(51, 75),
        rand.Next(76, 101),
    };

    Console.WriteLine($"Min: {jag[i].Min()} Max: {jag[i].Max()}");
}            
...