Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.98/40: Рейтинг темы: голосов - 40, средняя оценка - 4.98
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 128

Изменение индекса в массиве

24.06.2016, 17:46. Показов 8540. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я разу не программист. У меня есть массив чисел размерностью 10. Он заполняется числами от 1 до 10 случайно. Числа в массиве могут повторяться. Теперь надо взять 5 самых старших чисел из этого массива, но таким образом, чтобы они шли по порядку, например 10 9 8 7 6. Если такой комбинации нет, то ничего не делать. Также нужно сделать так, чтобы считало ещё и 4 3 2 1 0. 0 - это число 10 в этом массиве, если оно есть. В общем, если есть числа 4 3 2 1 и 10, то это бы считалось, как 1 2 3 4 10, потому что 10 это якобы число 0, которого нет. Но если есть 10, и нет комбинации чисел 10 9 8 7 6, то оно должно считаться за 0 только для комбинации 0 1 2 3 4. Вот Я не знаю, как сделать такую комбинацию с текущим положением чисел и индексов. Что нужно изменить, чтобы так получилось?

И ещё. Тот же массив, только теперь надо взять просто 5 самых старших чисел не попорядку. Какими бы они не были и сколько бы раз не повторялись. Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.06.2016, 17:46
Ответы с готовыми решениями:

Событие, отвечающее за изменение индекса выделенного элемента в ComboBox
Есть ли событие отвечающее за изменение индекса выделенного элемента в раскрывшемся списке ComboBox. Т.е. к примеру я нажимаю на кнопку в...

Нахождение индекса Gini в массиве
Здравствуйте! Помогите с массивом он основывается на datagridview. Нужно рассчитать индекс Gini(T) для каждого столбца кроме (Год, Т)....

Поиск индекса числа в массиве ()
Здравствуйте есть задача, я её решил, но не проходит тест (тест онлайн). Подскажите пожалуйста что я не верно сделал? Спасибо! ...

22
 Аватар для EveKS
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
24.06.2016, 23:23
Студворк — интернет-сервис помощи студентам
yellyex,
Цитата Сообщение от yellyex Посмотреть сообщение
0 - это число 10
0
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 128
24.06.2016, 23:35  [ТС]
Я попробовал вот так:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using System;
 
namespace Nums
{
    class Program
    {
        static void Main()
        {
 
            //Создание и заполнение массива размерностью 10 случайными числами от 1 до 10.
            int[] A = new int[10];
            Random r = new Random();
            Console.Write("Начальный массив: ");
            for (int i = 0; i < A.Length; i++)
            {
                A[i] = r.Next(1, 11);
                Console.Write(A[i] + " ");
            }
            Console.WriteLine();
            Console.WriteLine();
 
            // Сортировка массива по убыванию
            Array.Sort(A);
            Array.Reverse(A);
            Console.Write("Сортированный массив: ");
            for (int i = 0; i < A.Length; i++)
            {
                Console.Write(A[i] + " ");
            }
            Console.WriteLine();
 
            Console.Write("\nПять наибольших элементов: ");
            for (int i = 0; i < 5; i++)
                Console.Write(A[i] + " ");
            Console.WriteLine();
 
            bool V = true; 
            int prev = 0;
            for (int i = 0; i < 5; i++)
            {
                if (i != 0 && prev != A[i] + 1)
                { 
                    V = false;
                    break;
                }
            }
 
            if (V == true)
            { 
                Console.Write("\nПять последовательных чисел по убыванию: ");
                for (int i = 0; i < 5; i++)
                {
                    Console.Write(A[i] + " ");
                }
            }
 
            else
 
            {
                Console.Write("\nПять последовательных чисел по убыванию: Нет совпадений");
            }
 
            Console.ReadKey();
 
        }
    }
}


Я не знаю, как сделать цикл, который будет работать, пока не найдёт последовательность по убыванию с разницей -1.
0
 Аватар для EveKS
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
25.06.2016, 00:23
yellyex,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using System;
using System.Linq;
 
class Program
{
    static void Main(string[] args)
    {
        //минимальный и максимальный размер массива, количество чисел
        int min = 10, max = 25;
        //диапазон чисел от n до m
        int n = 0, m = 9;
        //подменять-ли 0 на 10 true false
        bool zero = true;
 
        Random rnd = new Random();
        var arr = new int[rnd.Next(min, max + 1)];
        Console.Write("Изначальный массив: ");
        for (int i = 0; i < arr.Length; i++)
        {
            int a = rnd.Next(n, m + 1);
            arr[i] = a;
            Console.Write(a + " ");
        }
 
        Console.Write("\nОтсортированный массив: ");
        arr.ToList().Select(x => x == 0 && zero ? 10 : x)
            .OrderBy(i => i).ToList()
            .ForEach(i => Console.Write("{0} "
            , i == 10 && zero ? 0 : i));
 
        Console.Write("\nПять наибольших элементов: ");
        arr.ToList().Select(x => x == 0 && zero ? 10 : x)
            .OrderByDescending(i => i).Take(5).OrderBy(i=>i).ToList()
            .ForEach(i => Console.Write("{0} "
            , i == 10 && zero ? 0 : i));
 
        Console.Write("\nПять наибольших элементов, без повторов: ");
        arr.ToList().Select(x => x == 0 && zero ? 10 : x)
            .OrderByDescending(i => i).Distinct().Take(5).OrderBy(i => i).ToList()
            .ForEach(i => Console.Write("{0} "
            , i == 10 && zero ? 0 : i));
        Console.WriteLine();
 
        Console.Write("\nПовторяющиеся элементы массива: ");
        arr.ToList().Select(x => x == 0 && zero ? 10 : x).OrderBy(i => i)
            .GroupBy(v => v).Where(g => g.Count() > 1)
            .ToList().ForEach(i => i.ToList()
            .ForEach(j => Console.Write("{0} "
            , j == 10 && zero ? 0 : j)));
 
        Console.Write("\nПовторяющиеся, отсортированные, элементы массива: ");
        arr.ToList().Select(x => x == 0 && zero ? 10 : x).OrderBy(i => i)
            .GroupBy(v => v).Where(g => g.Count() > 1)
            .ToList().ForEach(i => i.ToList()
            .ForEach(j => Console.Write("{0} "
            , j == 10 && zero ? 0 : j)));
 
        Console.Write("\nПовторяющиеся, отсортированные, элементы массива, без повторов: ");
        arr.ToList().Select(x => x == 0 && zero ? 10 : x).OrderBy(i => i)
            .GroupBy(v => v).Where(g => g.Count() > 1)
            .ToList().ForEach(i => Console.Write("{0} "
            , i.ToList().First() == 10 && zero ? 0 : i.ToList().First()));
 
        Console.ReadKey();
    }
}

yellyex, Почти не переделывал. Но шанс 5 идущих подряд -- очень низок.
//не факт что за 3+ запусков, выйдет -- 5 подряд идущих чисел.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
            //Создание и заполнение массива размерностью 10 случайными числами от 1 до 10.
            int[] A = new int[25000];
            Random r = new Random();
            Console.Write("Начальный массив: ");
            for (int i = 0; i < A.Length; i++)
            {
                A[i] = r.Next(1, 11);
                Console.Write(A[i] + " ");
            }
            Console.WriteLine();
            Console.WriteLine();
 
            int[] arr = new int[A.Length];
            Array.Copy(A, arr, A.Length);
 
            // Сортировка массива по убыванию
            Array.Sort(A);
            Array.Reverse(A);
            Console.Write("Сортированный массив: ");
            for (int i = 0; i < A.Length; i++)
            {
                Console.Write(A[i] + " ");
            }
 
            // Выбор пять наибольших чисел в массиве по убыванию
            Console.Write("\nПять наибольших элементов: ");
            for (int i = 0; i < 5; i++)
                Console.Write(A[i] + " ");
 
            int prev = 0;
            bool ansExist = true;
            for (int j = 0; j < arr.Length - 5; j++)
            {
                ansExist = true;
                for (int i = 1; i < 5; i++)
                {
                    ansExist = arr[j] == arr[j + i] + i && ansExist ? true : false;
                }
                if (ansExist)
                {
                    prev = j;
                    break;
                }
            }
 
            if (ansExist)
            {
                Console.Write("\nПять последовательных чисел по убыванию: ");
                for (int i = prev; i < prev + 5; i++)
                {
                    Console.Write(arr[i] + " ");
                }
            }
            else
            {
                Console.Write("\nПять последовательных чисел по убыванию: Нет совпадений");
            }
 
            Console.ReadKey();
 
        }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.06.2016, 00:23

Поиск индекса заданного элемента в отсортированном массиве
1. Заполнить статический массив значениями 90, 76, 54, 23, 56, 12, 48. Результат в виде таблицы значений массива вывести на консоль. ...

Функция поиска индекса первого вхождения в массиве
Добрый день Уважаемые Эксперты. Помогите пожалуйста разобраться в следующем вопросе. В VBA есть функция MATCH, которая позволяет...

Как вместо индекса в массиве использовать строку
Вопрос вот в чем как можно сделать вот так Par=&quot;www&quot;?. Нужно чтоб индекс массива был строкой, а не числом.

Как указать элемент в массиве не используя индекса.
Например есть массив: string bla = new string; и есть переменная: string name = b; Можно ли к массиву обратится вот в таком виде: ...

Как определить максимальное значение индекса в массиве?
Здравствуйте. Для одномерного массива количество индексов вычисляется просто Массив.Lenght;, а в двухмерном эта функция считает количество...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru