Ошибка при поиске максимального элемента

Решаю задачу на статический метод. Результатом должен возвратиться массив из двух элементов - мах и мин. Решил пока сделать 2 стат метода. Реализацию привел ниже. Минимальное значение находит, а на поиске макс значении программа ломается

using System;
    class T_5_9
    {
        static int Minimum(int[] nums,out int value1)
        {
            value1 = 0;
            for (int k = 1; k < nums.Length; k++)
            {
                if (nums[k] < nums[value1])
                {
                    k = value1;
                }
            }
            return nums[value1];
        }
        static int Maximum(int[] nums, out int value2)
        {
            value2 = 0;
            for (int j = 1; j < nums.Length; j++)
            {
                if (nums[j] > nums[value2])
                {
                    j = value2;
                }
            }
            return nums[value2];
        }
        static void Main()
        {
    
            int Min, Max, value1, value2;
            int[] a = new int[] { 1, 5, 66, 11, 2, 3, 51, 44 };
            Min = Minimum(a, out value1);
            Console.WriteLine();
            Console.WriteLine("Наименьшее значение " + Min + " " + value1);
            Max = Maximum(a, out value2);
            Console.WriteLine();
            Console.WriteLine("Наибольшее значение " + Max+ " " + value2);
            Console.ReadLine();
        }
    }

Ответы (1 шт):

Автор решения: MBo

У вас оба присвоения индекса перевёрнуты

 if (nums[k] < nums[value1])
            {
                value1 = k;
            }

и

 if (nums[j] > nums[value2])
            {
                value2 = j;
            }
→ Ссылка