Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/47: Рейтинг темы: голосов - 47, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 21.04.2014
Сообщений: 80

Вывод между максимальным и минимальным элементом

25.02.2018, 17:19. Показов 9683. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь решить прогу такого плана:
Дан массив допустим {2,3,5,1,2,5,19,23,3,5}
Нужно вывести все элементы между минимальным и максимальным.
Я реализовал min и max элемент, а как теперь вывести элементы между ними?

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
using System;
 
namespace CSharp3
{
    class Program
    {
        static void Main(string[] args)
        {
            int a, i, n, sum = 0, sumo = 0;
            int[] m = new int[100];
 
            Random rand = new Random();
            n = 11;
            Console.WriteLine("Исходный массив");
            for (i = 0; i < n; i++)
            {
                m[i] = rand.Next(0, 50);
                Console.Write(m[i] + " ");
            }
 
            var min = m[0];
            var max = m[0];
 
            for (i = 0; i < n; i++)
            {
                if (m[i] < min)
                {
                    min = m[i];
                }
                else if (m[i] > max)
                {
                    max = m[i];
                }
            }
            Console.WriteLine("\nМинимальный элемент: " + min);
            Console.WriteLine("Максимальный элемент: " + max);
            for (i = 0; i < n; i++)
            {
                Console.Write(m[i] + " ");
            }
            Console.ReadKey();
        }
    }
 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.02.2018, 17:19
Ответы с готовыми решениями:

Найти сумму между максимальным и минимальным элементом массива
Помогите найти ошибку. В массиве вычислить сумму расположенных между максимальным и минимальным элементами. int mas = new int; ...

Найти разность между минимальным и максимальным элементом для каждого из массивов
Даны массивы вещественных чисел A и B с одинаковым количеством элементов. Найти разность между минимальным и максимальным элементом для...

Посчитать, сумму положительных чисел, находящихся между минимальным и максимальным элементом
Может кто помочь?

7
Wanna be serious
 Аватар для Bespridelschic
587 / 474 / 186
Регистрация: 31.07.2013
Сообщений: 1,693
25.02.2018, 17:31
Получаете индекс максимально и минимального числа, и выводите этот промежуток в цикле, т.е. в вашем случае от 4 до 6 включительно.
0
0 / 0 / 0
Регистрация: 21.04.2014
Сообщений: 80
25.02.2018, 18:11  [ТС]
Bespridelschic, пытаюсь построить подобный цикл, но идет крах
C#
1
2
3
4
for (i = min; i < max; i++)
            {
                Console.Write(m[i] + " ");
            }
0
Wanna be serious
 Аватар для Bespridelschic
587 / 474 / 186
Регистрация: 31.07.2013
Сообщений: 1,693
25.02.2018, 18:23
Miracle_1, не совсем так. Вы пытаетесь построить цикл, начиная от вашего минимального числа, до максимального. Т.е. для массива {2,3,5,1,2,5,19,23,3,5} вы пытаетесь перебрать все элементы массива от m[1] до m[23]. Но так как массив меньше 23 элементов - вы получаете исключение выхода за пределы массива.

Правильней было бы так:
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
var min = m[0];
var max = m[0];
 
var minIndex = 0;
var maxIndex = 0;
 
for (i = 0; i < n; i++)
{
    if (m[i] < min)
    {
        min = m[i];
        minIndex = i;
    }
    else if (m[i] > max)
    {
        max = m[i];
        maxIndex = i;
    }
}
 
for (i = minIndex; i < maxIndex; i++)
{
    Console.Write(m[i] + " ");
}
1
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
25.02.2018, 18:34
Как вариант
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.Linq;
 
namespace thread2201294
{
    class Program
    {
        static void Swap(ref int a, ref int b) { int t = a; a = b; b = t; }
 
        static void Main()
        {
            int[] n = new int[10] { 2, 3, 5, 1, 2, 5, 19, 23, 3, 5 };
            int indmax = n.Select((v, i) => new { val = v, ind = i }).Where(v => v.val == n.Max()).First().ind;
            int indmin = n.Select((v, i) => new { val = v, ind = i }).Where(v => v.val == n.Min()).First().ind;
            if (indmax < indmin) Swap(ref indmax, ref indmin);
            Console.WriteLine(String.Join(" ", n.Skip(indmin + 1).Take(indmax - indmin - 1)));
            Console.ReadKey();
        }
    }
}
1
0 / 0 / 0
Регистрация: 21.04.2014
Сообщений: 80
25.02.2018, 18:43  [ТС]
Bespridelschic, Hitoku, спасибо большое вам, надеюсь я смогу повысить свой скилл в ближайшие месяцы
0
315 / 244 / 149
Регистрация: 03.10.2017
Сообщений: 886
Записей в блоге: 1
25.02.2018, 20:20
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
using System;
 
namespace CSharp3
{
    class Program
    {
        static void Main(string[] args)
        {
            int a, i, n, sum = 0, sumo = 0;
            int[] m = new int[100];
 
            Random rand = new Random();
            n = 11;
            Console.WriteLine("Исходный массив");
            for (i = 0; i < n; i++)
            {
                m[i] = rand.Next(0, 50);
                Console.Write(m[i] + " ");
            }
 
            var min = m[0];
            var max = m[0];
 
            for (i = 0; i < n; i++)
            {
                if (m[i] < m[min])
                {
                    min =i;
                }
                else if (m[i] > m[max])
                {
                    max =i;
                }
            }
            Console.WriteLine("\nМинимальный элемент: " + m[min]);
            Console.WriteLine("Максимальный элемент: " + m[max]);
            for (i = 0; i < n; i++)
            {
                Console.Write(m[i] + " ");
            }
            Console.Writeline("\n Элементы между минимум и максимом");
            for (int i=min+1;i<max;i++) Console.Write(m[i]+" ");
 
            Console.ReadKey();
        }
    }
 
}
0
 Аватар для Вадим Тукаев
310 / 291 / 116
Регистрация: 23.01.2018
Сообщений: 933
27.02.2018, 05:48
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Linq;
using System.Collections.Generic;
 
class Program
{
    public static void Main()
    {
        List<int> lst = Enumerable.Repeat(new Random(), 100).Select(r => r.Next(50)).ToList();
        Console.WriteLine(String.Join(", ", lst));
        List<Tuple<int, int>> mm = lst.Select((Func<int, int, Tuple<int, int>>)Tuple.Create)
            .Aggregate(new Tuple<int, int>[] { null, null }, (y, x) =>
            {
                if (y[0] == null || x.Item1 < y[0].Item1) y[0] = x;
                if (y[1] == null || x.Item1 > y[1].Item1) y[1] = x;
                return y;
            })
            .OrderBy(x => x.Item2)
            .ToList();
        mm.ForEach(Console.WriteLine);
        Console.WriteLine(String.Join(", ", lst.Skip(mm[0].Item2 + 1).Take(mm[1].Item2 - mm[0].Item2 - 1)));
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.02.2018, 05:48
Помогаю со студенческими работами здесь

Найти произведение элементов, расположенных между максимальным и минимальным элементом массива
Всем здравствуйте. Не могу понять как сделать обратный счетчик, т.е. задача такая: -найти произведение элементов расположенных между...

Вставить разницу между минимальным и максимальным элементом после каждого четного отрицательного
Прошу прощения, последнее задание))))завтра сдача курсовой(((( Задание №5 Вставка в массив Вставить разницу между минимальным и...

Вставить разницу между минимальным и максимальным элементом после каждого четного отрицательного
Привет всем, не могу разобраться, пока прочитаешь условие, уже забудешь, что требуют((( пока читаешь задание, забудешь условие((( я...

Даны массивы вещественных чисел A и B. Найти разность между минимальным и максимальным элементом для каждого из массивов
Здраствуйте, помогите пожалуйста написать код программы: Даны массивы вещественных чисел A и B с одинаковым количеством элементов....

Найти расстояние между первым минимальным и первым максимальным элементом матрицы
дан текстовый файл: { N M матрица NxM } найти расстояние между первым минимальным и первым максимальным элементом расстояние...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru