Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/47: Рейтинг темы: голосов - 47, средняя оценка - 4.53
1 / 1 / 1
Регистрация: 26.02.2018
Сообщений: 155
1

Удаление элементов в динамическом массиве

08.05.2018, 15:38. Показов 8875. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан массив a из n элементов и число k. Удалить из этого массива все элементы, равные k. Порядок элементов должен сохраниться в соответствии с тем, когда значение встретилось первый раз в массиве.

Формат входных данных
С клавиатуры вводится натуральное число n (n≤10000) — размер массива. Во второй строке вводятся n элементов массива через пробел. Все элементы целые по модулю не превосходят 1000000. В третьей строке вводится число k, целое, по модулю не превосходящее 1000000.

Формат выходных данных
Необходимо вывести измененный массив.

Примеры
вход
8
5 13 6 3 13 4 5 9
13
выход
5 6 3 4 5 9

Обязательно использовать дин. массив и без вектора. Буду очень вам благодарен за помощь!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2018, 15:38
Ответы с готовыми решениями:

Удаление столбца в двумерном динамическом массиве
Необходимо удалить столбец, содержащий хотя бы один ноль, из двумерного динамического...

Удаление строки k в динамическом двумерном массиве
Привет всем. Столкнулся с неприятностью в выполнении лабораторной работы. По заданию нужно...

Не могу найти ошибку с подсчетом суммы элементов в интервале[a,b] в динамическом одномерном массиве массиве.
#include <iostream> #include <conio.h> #include <stdlib.h> #include <time.h> #include <iomanip>...

Удаление двух или более подряд стоящих нулей в одномерном динамическом массиве
Привет всем :) Помогите исправить программу. Нужно удалить из одномерного динамического массива два...

2
82 / 82 / 44
Регистрация: 14.07.2013
Сообщений: 410
08.05.2018, 17:00 2
Лучший ответ Сообщение было отмечено Kalighost как решение

Решение

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

Добавлено через 11 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void remove(int*& array, int& size, int value) {
    int count = 0;
    for(int i = 0; i < size; i++)
        if(array[i] == value)
            count++;
    if(count) return;
    int newSize = size  - count;
    int* result = new int[newSize];
    for(int i = 0, j = 0; i < size; i++)
        if(array[i] != value) {
            result[j] = array[i];
            j++;
        }
    delete [] array;
    size = newSize;
    array = result;
}
это псевдокод)
1
0 / 0 / 0
Регистрация: 25.01.2022
Сообщений: 1
04.03.2023, 21:54 3
#include <iostream>
using namespace std;
int main() {
int n,k;
cin >> n;
int *a = new int[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
cin >> k;
int newsize = 0;
for (int i = 0; i < n; i++) {
if(a[i] != k){
a[newsize++] = a[i];
}
}
for (int i = 0; i < newsize; i++)
cout << a[i] << " ";
delete[] a;
return 0;
}
0
04.03.2023, 21:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2023, 21:54
Помогаю со студенческими работами здесь

Замена элементов в динамическом массиве с указателями
Дана задача создать динамический массив с указателями, с возможностью ввода пользователем элементов...

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

Определить, сколько различных элементов в одномерном динамическом массиве
Создать одномерный динамический массив размера n, где n вводит пользователь. Заполнить его...

В динамическом массиве удалить N элементов, начиная с номера K (ошибка)
Помогите, как исправить ошибку? Нужно из массива arr , который перед этим формируется рандомно....

Определение количества элементов в динамическом массиве оператором sizeof()
Как с помощью sizeof() определить, сколько элементов находится в массиве?

Подсчет количества отрицательных и положительных элементов в динамическом массиве
Написать функцию, которая получает указатель на динамический массив и его размер, и возвращает...


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

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