Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 16.09.2018
Сообщений: 24
1

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

05.11.2018, 23:59. Показов 877. Ответов 1
Метки нет (Все метки)

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

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
#include <iostream>
#include <cmath>
#include <algorithm>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    int n=10,k=0;
    const int N=10;
    int *a=new int[N];
    for (int i=0;i<N;i++)
    {
        cin>>a[i];
    }
 
 
for (int f=0;f<n;f++)
    {
        k=0;
    for (int j=0;j<n;j++)
    {
        if (a[f]==a[j] && f!=j)
        {
            k++;
        }
    }
        if (k<2)
        {
 
for (int q=f;q<n;q++)
    {
        a[q]=a[q+1];
        n--;
    }
        }
    }
 
 
 
for (int z=0;z<n;z++)
    {
        cout<<a[z]<<" ";
    }
    return 0;
 
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.11.2018, 23:59
Ответы с готовыми решениями:

Удаление четных элементов массива,больших среднего арифметического всех элементов массива
Доброго времени суток! Помогите пожалуйста) Вот задание:Из массива удалить четные элементы,...

Удаление из одного массива элементов второго массива и запись результата в третий
Есть массив masA (длина lenA), есть массив masB (длина lenB). Необходимо из массива masA удалить...

Удаление элементов массива, которые равны сумме предыдущего и следующего элементов
Нужно написать подпрограмму которая удаляет элементы массива, которые равны сумме предыдущего и...

Удалить из массива A[N] вс отрицательные элементы.Удаление отрицательных элементов массива оформить в виде функции
Что исправить? #include &lt;stdio.h&gt; #define N 10 int udalenie(int A,int k ) { int i; ...

1
Мозгоправ
1703 / 1006 / 459
Регистрация: 01.10.2018
Сообщений: 2,109
Записей в блоге: 2
06.11.2018, 03:54 2
Лучший ответ Сообщение было отмечено makcimmushka как решение

Решение

Изменять длину массива по которому идёт цикл - не очень хорошая идея. И в этом случае надо быть особенно аккуратным.
Вот такой вариант работает:
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
#include <iostream>
 
using namespace std;
 
const int N = 10;
 
int main() {
    int n = N, k = 0;
    int *a = new int[N];
    bool *for_delete = new bool[N];
 
    for (int i = 0; i < N; i++) {
        cin >> a[i];
    }
 
    for (int f = 0; f < n; f++) {
        k = 0;
        for (int j = 0; j < n; j++)
            if (a[f] == a[j])
                k++;
        for_delete[f] = k < 3;
    }
 
    n = N;
    for (int i = 0, j = 0; j < N; ++i, ++j) {
        if (for_delete[j]) {
            for (int k = i; k < n - 1; ++k) {
                a[k] = a[k + 1];
            }
            --n;
            --i;
        }
    }
 
    for (int z = 0; z < n; z++) {
        cout << a[z] << " ";
    }
    delete[] a;
    delete[] for_delete;
    return 0;
}
Вообще это не лучшая задача для реализации на массивах. И ограничение, что это должен быть тот же массив.

Если сделать с использованием контейнеров STL, будет гораздо проще.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2018, 03:54

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Удаление элементов массива, совпадающих с элементами другого массива
Здравствуйте, помогите найти ошибку в коде; суть задачи такая: удалить элементы из 1 массива,...

Удаление элементов массива без буферного массива
Требуется удалить элементы из массива, при это длинна массива уменьшится, ВАЖНО буферный массив не...

Удаление элементов из массива
Здравствуйте, помогите пожалуйста, как удалить одинаковые элементы одного массива из другого. у...

Удаление элементов массива
Задание: Удаление элементов из массива оформить в виде функции. Поиск места удаления элемента или...


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

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

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