Отсортировать числа, находящихся между предпоследним и последним отрицательным членом последовательности - C#

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

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

Дана последовательность целых чисел. Вывести упорядоченную по убыванию последовательность, состоящую из чисел данной последовательности, находящихся между предпоследним и последним отрицательным членом последовательности. Не могу ладу дать что не так делаю дошел пока только до поиска отрицательных последний находит как бы а предпоследний нет
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            int j, otric1=0, otric2=0; 
            string strValue;
            int[] Mas = new int[10];
            for (j = 0; j < 10; j++)
            {
                strValue = Console.ReadLine();
                Mas[j] = Convert.ToInt32(strValue);
            }
            for (j = 0; j < 10; j++)
            {
                if(Mas[j]<0)
                {
                 otric1 = Mas[j];
                   
                }
                if (Mas[j] < 0 && Mas[j] < otric1)
                {
                    otric2 = Mas[j];
                }
            }
            Console.WriteLine("\n Poslednii otricatelnii" + otric1 + "Predposlednii otricatelnii " + otric2);
            Console.ReadKey();
        }
         
    }
}

Решение задачи: «Отсортировать числа, находящихся между предпоследним и последним отрицательным членом последовательности»

textual
Листинг программы
using System;
 
namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            int otric1 = -1, otric2 = -1;
            int[] Mas = { 1, 4, 2, 6, -2, 5, 7, -5, 2, 7, 4, 8, -2, -3, 5, 2 };
            for (int i = Mas.Length - 1; i >= 0; i--)
            {
                if (Mas[i] < 0)
                {
                    otric1 = i;
                    break;
                }
            }
            for (int i = otric1 - 1; i >= 0; i--)
            {
                if (Mas[i] < 0)
                {
                    otric2 = i;
                    break;
                }
            }
            if (otric1 == -1 || otric2 == -1)
            {
                Console.WriteLine("Недостаточно отрицательных чисел!");
                Console.ReadKey();
                return;
            }
            int[] arr2 = new int[otric1 - otric2 - 1];
            for (int i = 0; i < arr2.Length; i++)
            {
                arr2[i] = Mas[++otric2];
            }
            Array.Sort(arr2);
            Array.Reverse(arr2);
            Console.WriteLine(string.Join(" ", arr2));
            Console.ReadKey();
        }
    }
}

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


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

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

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