Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mashka4190
2 / 2 / 1
Регистрация: 02.12.2013
Сообщений: 175
#1

Удалить из массива все элементы, расположенные перед максимальным элементом массива - C++

02.07.2015, 16:51. Просмотров 302. Ответов 5
Метки нет (Все метки)

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

Добавлено через 5 часов 31 минуту
// актуальна
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2015, 16:51     Удалить из массива все элементы, расположенные перед максимальным элементом массива
Посмотрите здесь:

Удалить все элементы, расположенные между минимальным и максимальным элементами массива - C++
Дан линейный массив из n элементов. Удалить все элементы, расположенных между минимальным и максимальным элементами массива. Помогите...

Удалить все элементы массива расположенные между максимальным и минимальным элементами - C++
в целочисленном массиве X(N) удалить все элементы, расположенные между максимальным и минимальным элеметами. Найти средне арифметическое...

Перед указанным элементом массива вставить все элементы другого массива - C++
Даны одномерные массивы a и b, и число р. Вставить в массив a перед элементом с индексом р все элементы массива b. Добавлено через...

Удалить из массива А(М) элементы, стоящие за первым максимальным элементом, количество цифр которых равно k - C++
Удалить из массива А(М) элементы, стоящие за первым максимальным элементом, количество цифр которых равно k.

Получить массив В, содержащий элементы массива А, расположенные между максимальным и минимальным элементами массива - C++
Люди добрые, помогите решить задачку. Дан одномерный массив А, состоящий из целых чисел. Получить массив В, содержащий элементы массива...

Дан массив int *a. Удалить из массива все элементы совпадающие с первым элементом - C++
Дан массив int *a. Удалить из массива все элементы совпадающие с первым элементом, используя динамическое выделение памяти.

Вывести элементы массива расположенные между максимальным и минимальным элементами - C++
Дан массив n элементов. Вывести на экран элементы расположенные между максимальными минимальным элементами массива

Обнулить элементы массива, расположенные между его минимальным и максимальным элементам - C++
Дан массив размера N. Обнулить элементы массива, расположен- ные между его минимальным и максимальным элементами (не включая ...

Обнулить элементы массива, расположенные между его минимальным и максимальным элементами - C++
Дан массив размера N. Обнулить элементы массива, расположенные между его минимальным и максимальным элементами (не включая мини-мальный и...

Переставить в обратном порядке элементы массива, расположенные между минимальным и максимальным элементами - C++
Дан одномерный массив. Переставить в обратном порядке элементы массива, расположенные между минимальным и максимальным элементами. Прошу...

Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами - C++
Доброго времени суток,есть задача которую мне необходимо решить, однако я не имею представления как ее решать(я нуб) так что прошу о...

Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами - C++
Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами....


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Cuellius
176 / 84 / 62
Регистрация: 23.06.2015
Сообщений: 219
Завершенные тесты: 2
02.07.2015, 17:14     Удалить из массива все элементы, расположенные перед максимальным элементом массива #2
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
#include <string.h>
 
int GetMaxElement(int *arr, int first, int last)
{
    if (first == last) return last;
    int *largest = arr + first;
    int *pfirst = arr + first;
    int *plast = arr + last;
 
    while (++pfirst != plast)
        if (*largest < *pfirst)    
            largest = pfirst;
    return largest - arr;
}
 
int main()
{
    //Ввод массива...
        //arr - заданный массив, N - размер заданного массива
 
    int iMaxPos = GetMaxElement(arr, 0, N);
    N -= iMaxPos;
 
    if(iMaxPos != 0)
        memcpy(arr, arr + iMaxPos, N * sizeof(int));
    
    //Вывод массива...
 
    return 0;
}
mashka4190
2 / 2 / 1
Регистрация: 02.12.2013
Сообщений: 175
02.07.2015, 19:31  [ТС]     Удалить из массива все элементы, расположенные перед максимальным элементом массива #3
Cuellius, а можно вместе с вводом и выводом массива?
Cuellius
176 / 84 / 62
Регистрация: 23.06.2015
Сообщений: 219
Завершенные тесты: 2
02.07.2015, 19:40     Удалить из массива все элементы, расположенные перед максимальным элементом массива #4
Можно
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int GetMaxElement(int *arr, int first, int last)
{
    if (first == last) return last;
    int *largest = arr + first;
    int *pfirst = arr + first;
    int *plast = arr + last;
 
    while (++pfirst != plast)
        if (*largest < *pfirst)    
            largest = pfirst;
    return largest - arr;
}
 
int main()
{
    int N, i;
    scanf("%d", &N);
    int *arr = (int*)malloc(N * sizeof(int));
    for(i = 0; i < N; i++)
    {
        scanf("%d", &arr[i]);
    }
 
    int iMaxPos = GetMaxElement(arr, 0, N);
    N -= iMaxPos;
 
    if(iMaxPos != 0)
        memcpy(arr, arr + iMaxPos, N * sizeof(int));
    
    for(i = 0; i < N; i++)
    {
        printf("%d ", arr[i]);
    }
    printf("\n");
    
    free(arr);
 
    return 0;
}
mashka4190
2 / 2 / 1
Регистрация: 02.12.2013
Сообщений: 175
02.07.2015, 19:50  [ТС]     Удалить из массива все элементы, расположенные перед максимальным элементом массива #5
Cuellius, спасибо большое!

Добавлено через 5 минут
Cuellius, только почему еще удаляет последний элемент массива?
Nkey
308 / 61 / 10
Регистрация: 21.12.2011
Сообщений: 281
Завершенные тесты: 2
02.07.2015, 19:57     Удалить из массива все элементы, расположенные перед максимальным элементом массива #6
mashka4190, исправь
Yandex
Объявления
02.07.2015, 19:57     Удалить из массива все элементы, расположенные перед максимальным элементом массива
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru