9 / 9 / 11
Регистрация: 01.12.2014
Сообщений: 31
1

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

01.12.2014, 21:00. Показов 1879. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана задача : В одномерном массиве найти два максимальных элемента и удалить все элементы между ними. Массив задается случайным образом.
Максимальные элементы и их индексы я нахожу, но не знаю, как удалить\убрать элементы между ними.
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
    cin >> N;
    int arr[N];
    for ( int i = 0; i < N; i++)
    {
        cout << "arr [" << i << "] : ";
        cin >> arr[i];
    }
        max1 = -100;
        max2 = -100;
        for ( int i  = 0; i < N; i++)
        {
            if ( arr[i] > max1)
            {
                 max1=arr[i];
                 num1 = i;
            }
        }
                 for ( int i = 0; i < N; i++)
        {
                 if (( arr[i] > max2) && (i != num1))
            {
                 
                 max2=arr[i];
                 num2 = i;
                 
            }
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2014, 21:00
Ответы с готовыми решениями:

В заданном одномерном массиве найти максимальное и минимально значение и обнулить все значения между ними
Здравствуйте, у меня такая проблема. Дан одномерный массив из рандомных чисел, нужно найти...

Найти в массиве минимум и максимум и показать элементы между ними
Есть задача для экзамена не могу писать код если не сложно помогите Пример : Массив : 3 4 6 1 2 9...

в одномерном массиве А состоящем из N элементов найти максимальные элементы и все элементы равные максимальному заменить на 0.
в одномерном массиве А состоящем из N элементов найти максимальные элементы и все элементы равные...

В одномерном массиве, элементы которого - целые числа, удалить все четные числа
В одномерном массиве, элементы которого - целые числа, удалить все четные числа именно удалить а...

2
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
01.12.2014, 23:20 2
Wellard,
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
#include <iostream>
 
using namespace std;
 
int shiftArr(int* a, int m1, int m2, int n) {
    int shift = abs(m2 - m1);
    
    if (m2 < m1) { m2 = m1; }
 
    for (int i = m2; i < n; ++i) {
        a[i - shift+1] = a[i];
    }
 
    return n-shift+1;
}
 
 
int main()
{
    int N, max1, max2, num1, num2;
 
    cin >> N;
 
    int* arr = new int[N];
 
    for (int i = 0; i < N; i++)
    {
        cout << "arr [" << i << "] : ";
        cin >> arr[i];
    }
 
    max1 = -100;
    max2 = -100;
    for (int i = 0; i < N; i++)
    {
        if (arr[i] > max1)
        {
            max1 = arr[i];
            num1 = i;
        }
    }
    for (int i = 0; i < N; i++)
    {
        if ((arr[i] > max2) && (i != num1))
        {
            max2 = arr[i];
            num2 = i;
 
        }
    }
 
    N = shiftArr(arr, num1, num2, N);
 
    for (int i = 0; i < N; i++)
        cout << arr[i] << ' ';
    cout << endl;
 
    delete[] arr;
 
    return 0;
}
удалять элементы в обычном массиве нельзя. Функция shiftArr сдвигает массив и возвращает "новый размер" массива.
1
9 / 9 / 11
Регистрация: 01.12.2014
Сообщений: 31
02.12.2014, 00:51  [ТС] 3
Спасибо большое! Все работает.
0
02.12.2014, 00:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2014, 00:51
Помогаю со студенческими работами здесь

В одномерном массиве, элементы которого -целые числа, удалить все четные числа
В одномерном массиве, элементы которого -целые числа, удалить все четные числа.

Найти два элемента в массиве, разница между которыми максимальна (оптимизация алгоритма)
Есть правильное решение задачи. Не проходит последние тесты по времени. Задачу я уже сдал, но...

Последовательность целых чисел. Найти два минимальных / два максимальных элемента
Дана последовательность целых чисел a1,a2,...,an, где n=&gt; 3. Найти: а) два максимальных элемента...

Создать массив Y, удалив все элементы в массиве Х, расположенные между его максимальным и минимальным элемента
Задание: Сформировать динамический одномерный массив Х. Создать массив Y, удалив все элементы в...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru