Во всех последовательностях отрицательных чисел поменять местами элементы с максимальным и минимальным значениями - C#

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

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

Помогите плиз с заданием: Размерность массива – 100, диапазон значений [-50,50]. Во всех последовательностях отрицательных чисел поменять местами элементы с максимальным и минимальным значениями. Я вроде как ее написал, но она не совсем так как нужно работает. Помогите пожалуйста разобраться, где у меня ошибка, а то я совсем запутался(
static void Num6()
        {
            int[] array = new int[100];
            Random rnd = new Random();
            for (int i = 0; i < array.Length; i++)
                array[i] = rnd.Next(-50, 50);
            Console.Write("Массив:  ");
            foreach (int x in array)
                Console.Write(x + " ");
            Console.WriteLine();
            bool f1 = false;
            bool f2 = false;
            int max = -555;
            int min = -555;
            int j = 0;
            int count = 0;
            for (int i = 0; i < array.Length - 1; i++)
            {
                if (array[i] < 0 && array[i + 1] < 0)
                {
                    j = i;
                    count++;
                    f1 = true;
                    f2 = false;
                    if (max == -555)
                        max = array[i];
                    else if (max > array[i])
                        max = array[i];
                    if (min == -555)
                        min = array[i];
                    else if (min < array[i])
                        min = array[i];                       
                }
                else
                    f2 = true;
                if (f1 && f2)
                {
                    int k = j - count;
                    for (; k < j; k++)
                    {
                        if (array[k] == max)
                            array[k] = min;
                        if (array[k] == min)
                            array[k] = max;
                    }
                    min = -555;
                    max = -555;
                    j = 0;
                    count = 0;
                    f1 = false;
                    f2 = false;
                }
            }
            Console.Write("Измененый массив:  ");
            foreach (int x in array)
                Console.Write(x + " ");
            Console.WriteLine();
        }

Решение задачи: «Во всех последовательностях отрицательных чисел поменять местами элементы с максимальным и минимальным значениями»

textual
Листинг программы
           static void Main(string[] args)
        {
            int maxVal = 0;
            int minVal = 0;          
            bool isAny = false;
            int[] mas = new int[10]; //для теста взял 10, потом поменять на 100
            Random rand = new Random(DateTime.Now.Millisecond);
            for (int i = 0; i < mas.Length; i++)
            {
                mas[i] = rand.Next(-50, 51);
                Console.Write(mas[i] + " ");
            }
            Console.WriteLine();
            
            for (int i = 0; i < mas.Length; i++) 
            {
                if (mas[i] < 0)
                {
                    if (!isAny)
                    {
                        maxVal = i;
                        minVal = i;
                        isAny = true;
                    }
                    else
                    {
                        if (mas[i] >= mas[maxVal]) maxVal = i;
                        if (mas[i] < mas[minVal]) minVal = i;
                    }
                }
            }
 
            if (isAny) Swap(ref mas[maxVal], ref mas[minVal]);
 
            for (int i = 0; i < mas.Length; i++)
            {
                Console.Write(mas[i] + " ");
            }
 
            Console.ReadLine();
 
        }
 
        public static void Swap(ref int min, ref int max)
        {
            int buf = min;
            min = max;
            max = buf;
        }

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


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

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

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